Java 索引排序。发生了一些非常奇怪的事情 public int[]indexSort(){ int[]sortedar=新int[max]; 对于(inti=0;i0&&key

Java 索引排序。发生了一些非常奇怪的事情 public int[]indexSort(){ int[]sortedar=新int[max]; 对于(inti=0;i0&&key,java,Java,总是有一个“重复”:当i==j时 您可能应该在i+1处启动内部循环: public int[] indexSort(){ int[] sortedarr = new int[max]; for(int i=0;i<max;i++){ int key=0; int duplicates = 0; for(int j=0;j<max;j++){ if(arr[i]>arr[j])

总是有一个“重复”:当
i==j

您可能应该在
i+1
处启动内部循环:

       public int[] indexSort(){
    int[] sortedarr = new int[max];

    for(int i=0;i<max;i++){
        int key=0;
        int duplicates = 0;
        for(int j=0;j<max;j++){
            if(arr[i]>arr[j]) key++;
            else if(arr[i]==arr[j]) duplicates++;

        }
        while(duplicates>0&&key<max){


            sortedarr[key] = arr[i];
            key++;
            duplicates--;
        }
    }
    return sortedarr; }

for(int i=0;iDamn)没有看到这一点。您的实现没有修复编译错误,但它给出了错误的输出。我只需通过设置i!=j条件来补偿代码中始终存在的重复项。感谢您的帮助,索引排序应该是n^3吗?我在google上找不到关于该排序的任何信息。
for(int i=0;i<max;i++){
    int key=0;
    int duplicates = 0;
    for(int j=i+1;j<max;j++){