我不明白为什么这不起作用。我的插入排序算法有什么问题?
public class InsertionSort {
public static void main(String[] args) {
int x[] = { 9, 5, 8, 4, 3, 0, 6, 7, 2, 1 };
int[] result = InsertionSortMethod(x);
for (int z = 0; z < x.length; z++) {
System.out.print(x[z] + " ");
}
}
public static int[] InsertionSortMethod(int x[]){
for (int a = 0; a < x.length; a++) {
int divider = a;
if(divider > 0 & divider < x.length){
if(x[divider] < x[0]){
int temp = x[divider];
for(int c = divider; c > 0; c--){
x[c] = x[c-1];
}
x[0] = temp;
}
if(x[divider] > x[divider-1]){
x[divider] = x[divider];
}
else{
for(int b = divider-1; b > 0; b--){
if(x[divider] < x[b]){
int temp = x[divider];
x[divider] = x[b];
x[b] = temp;
}
}
}
}
}
return x;
}
}
您收到了哪些错误?你有没有失败的样本输入和输出? –
没有错误,这里是输出:0 3 4 5 8 6 7 2 1 9.我想弄清楚为什么整个数组没有正确排序。 – user1804933
学习如何使用调试器遍历代码,看看它在做什么。这是一项非常有价值的技能。 –