0
このバブルソートを書き、ユーザーが入力した量だけ乱数をリストに与えるテストプログラムで使用しました。その後、10,000個のランダムなintのリストが与えられ、55行目のスタックオーバーフローが返されました。if(swaps!= 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();
}
}
}