0
我寫了這個冒泡排序,並將其用於測試程序,該程序通過用戶輸入的數量給出列表中的隨機數。然後給它一個10,000個隨機整數的列表,並返回55行的堆棧溢出「if(swap!= 0){sort();}」爲什麼會這樣。也有時它的工作原理,但爲myCompares和mySwaps返回一個負值。你能幫我嗎?排序堆棧溢出和比較和交換的數量爲負
public class Bubbly {
private int[] sortedList;
private static long myTime = 0;
private static int myCompares = 0;
private static int mySwaps = 0;
public Bubbly(int[] list) {
sortedList = list;
StopWatch stop = new StopWatch();
stop.start();
sort();
stop.stop();
myTime = stop.getElapsedTime();
}
public int[] getList(){
return sortedList;
}
public long getTime(){
return myTime;
}
public int getCompares(){
return myCompares;
}
public int getSwaps(){
return mySwaps;
}
public void sort(){
int length = sortedList.length, i = 0, num, swaps = 0;
while (i < length - 1){
if (sortedList[i] > sortedList[i + 1]) {
myCompares++;
num = sortedList[i];
sortedList[i] = sortedList[i+1];
sortedList[i+1] = num;
swaps++;
mySwaps++;
}
myCompares++;
i++;
}
if (swaps != 0){
sort();
}
}
}