字串 字串排序

2021-07-29 19:59:19 字數 1352 閱讀 1817

頻率統計

將頻率轉換為索引

資料分類

回寫

頻率統計:統計每個字元出現的次數

將頻率轉換為索引:確定不同字元首位置

從右到左檢查檢查鍵中的字元

public

class

lsd

}}

public

class msd

public

static

void

sort(string a)

private

static

void

sort(string a, int lo, int hi, int d)

int count = new

int[r+2];

for(int i=lo; i<=hi; i++)

count[charat(a[i], d) + 2]++;

for(int r=0; r//將頻率轉換為索引

count[r+1] += count[r];

for(int i=lo; i<=hi; i++) //將元素分類

aux[count[charat(a[i], d) + 1]++] = a[i];

for(int i=lo; i<=hi; i++) //回寫

a[i] = aux[i-lo];

for(int r=0; r1]-1, d+1); //遞迴

}}

根據鍵的首字母進行三向切分,僅在中間子陣列的下乙個字元(因為鍵的首字母都與切分字元相等)繼續遞迴排序.

public

class quick3string

public

static

void

sort(string a)

private

static

void

sort(string a, int lo, int hi, int d)

sort(a, lo, lt-1, d); //三部分中的上半部分(小)

if(v>0) sort(a, lt, gt, d+1); //三部分中的中間部分

sort(a, gt+1, hi, d); //三部分中的下半部分(大)

}}

《演算法》 字串 字串排序

輸入字串和字串對應的組別 組別也是字串的鍵 在滿足組別有小到大排序的情況下,將字串按字母順序排序 第一步,記錄組別的頻率 為了得到某個字串在排序後的範圍,比如組別2肯定在組別1後面,在組別3前面,把每個組別有多少個人記錄下來,方便我們定位 第三步,分類 該組別的位置起點 向後挪一位 因為當前位被用了...

ORACLE in 字串,字串,字串

因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...

C語言字串 字串排序

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b...