我在使用计数排序按字母顺序对名称进行排序时遇到问题,例如,我想按字母顺序排序并添加数字输入0001 Alex Smith, Gregory John, Alex Smith, Adam Richard, Alex Ryan
。输出应按以下顺序:
亚当·理查德·
亚历克斯·瑞恩·亚历
克斯·史密斯
格雷戈里·约翰
到目前为止我的代码:
public class Names
{
//private static int[] c;
public ArrayList<String> getUserInput()
{
ArrayList<String> names = new ArrayList<String>();
Scanner in = new Scanner(System.in);
while (in.hasNext())
{
names.add(in.next());
System.out.println(names);
}
in.close();
return names;
}
private static CountingSort(int A[], int B[], int k[])
{
int i;
int C[0];
for(i = 0; i <= k; i++){
C[i]=0;
}
for(int j=1; j <= A.length; ){
C[A[j]] = C[A[j]] + 1;
}//C[i] now contains numbers of elements equals to i
for(int i=1; i < k; i++){
C[i] = C[i] + C[i - 1];
}
for(int j = A.length; j--){
B[C[A[j]]] = A[j];
C[A[j]] = C[A[j]] - 1;
}
}
}