Impresión de clasificación de diccionario
Importar Java.util.iterator;
Comparación de clases públicas {
Recuento de vacíos públicos sort(string[]a,char 【】b, int k) {// Ordenación por conteo.
Cadena【】temp = nueva cadena【a longitud 1】;
int【】c = nueva int【k 1】; j;
for(I = 0; I lt= k; i )
c【I】=
for(j = 0; j longitud lt; j ) {
c[B[j]-a']= c[B[j]-a'] 1;
}
para (I = 1; i lt= k; i)
c【I】= c【I】 c【I-1】;
para (j = a . longitud-1; j gt= 0; j-) {
temp[c[B[j]-[A']= A[j];
c[B [ j]-[a']= c[B[j]-[a']-1;
}
para (I = 1; I lt= A. longitud ; i) {
a[I-1]= temp[I];
}
}
clasificación de raíz vacía pública ( String[]A, int d){
ArrayList[]arr = new ArrayList[26];
contando sort(A,divide(A,d),max(divide ( A, d))-'A');
for(int I = 0; i lta . length; 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 ) {// Insertar y ordenar cada depósito de almacenamiento .
if(arr【j】!= nulo) {
insertar(arr【j】);
}
}
//Fusionar los resultados de cada depósito.
int count = 0;
for(int I = 0;ilt26;i) {
if (arr[I]!= null) {
Iterador it = arr[I]. iterador();
mientras(it . hasnext()){
String temp = (String)it .next();
a[count 】 = temporal;
recuento
}
}
}
}
Inserción pública vacía (lista ArrayList){//Ordenación por inserción.
if(lista . size() gt; 1) {
for(int i = 1; i ltlist . size(); i ) {
if (comparar con ((String) lista. obtener (I), (String) lista. obtener (I-1)) lt; 0) {
String temp = (String) lista obtener (I. );
int j = I-1;
for(; j gt= 0 amp ampcompare to (temp, (String) list . get (j)) lt; 0; j -)
lista conjunto (j 1, lista . get (j));
lista conjunto (j 1, temp
}
}
}
}
int comparar con (cadena a, cadena b) {// Comparar el tamaño de dos cadenas.
Devuelve un . comparar con (b);
}
public char[]divide(string[]a, int count){//Obtener el carácter de matriz d para cada cadena en .
char[]B = nuevo carácter [a . longitud];
for(int I = 0; i lta . longitud; i) {
b 【Yo】= A【Yo】. charAt(count-1);
}
Devolver B;
}
carácter público max(char[]B){ //Encuentra el valor máximo en la matriz.
char max ='a';
for (int I = 0; i lt length; i) {
if (B[I]》; max) max = B[I];
}
return max
}
Public static void main(String[] args ) {
CompareString cs = new CompareString();
string【】A = {"Apple","Hola","Estimado","Qingqing"," Todos los días", "Feliz"};
cs . radix sort (A, 1
for (int I = 0; i lta . length; i )
sistema . imprimir (A【I】 "");
}
}