當前位置:成語大全網 - 書法字典 - 程序字典順序

程序字典順序

導入Java . util . ArrayList;

導入Java . util . iterator;

公共類比較{

Public void計數排序(string【】a,char【】b,int k){//計數排序。

String【】temp =新字符串【a . length+1】;

int【】c = new int【k+1】;

int i,j;

for(I = 0;我& lt= k;i++)

c【I】= 0;

for(j = 0;j & lt長度;j++) {

c【B【j】-a‘】= c【B【j】-a‘】+1;

}

for(I = 1;我& lt= k;i++)

c【I】= c【I】+c【I-1】;

for(j = a . length-1;j & gt= 0;j-){

temp【c【B【j】-【A‘】= A【j】;

c【B【j】-【a‘】= c【B【j】-【a‘】-1;

}

for(I = 1;我& lt= A .長度;i++) {

a【I-1】= temp【I】;

}

}

public void radix sort(String【】A,int d ){

ArrayList【】arr = new ArrayList【26】;

counting sort(A,divide(A,d),max(divide(A,d))-‘A‘);

for(int I = 0;我& lta .長度;i++) {

int temp = A【I】。charAt(d-1)-“a”;

if(arr【temp】= = null)

arr【temp】= new ArrayList();

arr【temp】add(A【I】);

}

for(int j = 0;j & lt26;j++){//插入並排序每個存儲桶。

if(arr【j】!= null) {

insert(arr【j】);

}

}

//合並每個桶的結果。

int count = 0;

for(int I = 0;我& lt26;i++) {

if(arr【I】!= null) {

叠代器it = arr【I】。叠代器();

while(it . hasnext()){

String temp =(String)it . next();

a【count】= temp;

count++;

}

}

}

}

public void Insert(ArrayList list){//插入排序。

if(list . size()& gt;1) {

for(int I = 1;我& ltlist . size();i++) {

if(compare to((String)list . get(I),(String)list . get(I-1))& lt;0) {

String temp =(String)list . get(I);

int j = I-1;

for(;j & gt= 0 & amp& ampcompare to(temp,(String)list . get(j))& lt;0;j -)

list . set(j+1,list . get(j));

list . set(j+1,temp);

}

}

}

}

int compare to(string a,string b){//比較兩個字符串的大小。

返回a . compare to(b);

}

public char【】divide(string【】a,int count){//取數組中每個字符串的d字符。

char【】B =新字符【a . length】;

for(int I = 0;我& lta .長度;i++) {

b【I】= A【I】。charAt(計數-1);

}

返回B;

}

public char max(char【】B){//查找數組中的最大值。

char max =‘a‘;

for(int I = 0;我& lt長度;i++) {

if(B【I】》;max)max = B【I】;

}

return max

}

公共靜態void main(String[] args) {

CompareString cs = new CompareString();

string【】A = {“蘋果“、“妳好“、“親愛的“、“清清“、“日日“、“開心“};

cs . radix sort(A,1);

for(int I = 0;我& lta .長度;i++)

system . out . print(A【I】+““);

}

}