我想尝试弄清楚,只是需要指出正确的方向。请不要只写解决方案,我想了解我需要做些什么才能使其工作。
static void bubbleSort() {
int [] a = {1,3,4,2,5};
int [] b = new int[a.length];
int j = 0;
for(int c = 0;c <= a.length;c++){//this loop doesnt even do anything???
for(int i = 0;i<a.length-j;i++){
if(a[i]>a[i+1]){
b[i] = a[i+1];
b[i+1] = a[i];
j++;
}
else{
b[i] = a[i];
b[i+1] = a[i+1];
j++;
}
}
}
for(int i = 0; i< b.length ; i++)
System.out.println(b[i]);
}
最佳答案
您的代码有很多问题-
1)您不需要额外的数组'b',可以就地进行冒泡排序。
2)考虑使用“ j”,将其替换为“ c”,然后检查这在循环中有何不同。
3)您新排序的数组出现在“ b”中,并且仍然在每一步检查条件-
if(a[i]>a[i+1])
您不认为“ b”在这里扮演角色吗?
考虑以上几点,如果仍有问题,请对此文章发表评论。