如何排序数字无间隙?

时间:2014-02-05 09:07:59

标签: java sorting

我的数字如:1,7,1,5我希望对它们进行排序,它们之间没有间隙(即)1,7,1,5被分类为1,1,2,3。 (5变成2; 7变成3)。

我的代码看起来像这样(工作正常),但在某些情况下会返回空指针ex,或类似的东西:/

public void shake(Car[] c){
for(int i = 1; i < MaxPriority; i++)
   if(!isCarWithPriority(i, c))         
      for(int j = i; j < 10; j++)
         if(isCarWithPriority(j, c))    
            for(int k = 0; k < getCarsWithPriority(j, c).length; k++)  
               getCarsWithPriority(j, c)[k].setPriority(i);
}

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以在排序后尝试迭代这些数字。如果结果为0,则从第2个减去第1个然后不做任何其他事先用第1个替换第2个+ 1然后以相同的方式比较第3个和第2个。继续直到最后一个数字。你会得到所需的输出。这可以通过java中的单个循环来实现。

答案 1 :(得分:0)

这样就可以了解

 public static void main(String[] a) {
  Integer [] arr = {1,7,1,5};

  Arrays.sort(arr);
  for (Integer integer : arr) {
    System.out.println(integer);
}


for(int i=0; i< arr.length-1 ;i++){
    if(arr[i+1]-arr[i] ==0){
        continue;
    }else{
        arr[i+1] =arr[i]+1;
    }
}

System.out.println("--------------------");
for (Integer integer : arr) {
    System.out.println(integer);
}

}

相关问题