索引排序。真是奇怪的事情正在发生

时间:2014-09-19 12:15:26

标签: java

       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; }

while循环如何工作?即使没有重复项(重复项= 0),仍然会执行while循环。

我的思绪很困惑。是否应该由O(n ^ 3)运行索引排序?

1 个答案:

答案 0 :(得分:1)

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

你应该在i+1

开始内循环
for(int i=0;i<max;i++){
    int key=0;
    int duplicates = 0;
    for(int j=i+1;j<max;j++){
相关问题