我的冒泡排序法如果数组是奇数就最后一个数字不是最大的,但是没有排到前面来,如果是偶数的话就是倒数第二个
public class lx12{
public static void main(String[] args) {
int arr[] = {1,0,4,7,-1};
int temp = 0;
for(int i =0;i-1;i++){
for(int j=0;j-1-j;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
System.out.println("这是"+(i+1)+"次循环");
for(int j=0;jSystem.out.print(arr[j]+"\t");
}
}
}
}
你的第二个for循环中的j的限制条件应该是 j<arr.length-1-i,而不是 j<arr.length-1-j
for(int j=0;j<arr.length-1-j;j++)
改为
for(int j=0; j<arr.length-1-i; j++)
第二个for循环的条件有问题:for(int j=0;j<arr.length-1-i;j++)
内层for循环写错了,改为 for(int j=0;j<arr.length-1-1;j++){
你都写错了能不出问题吗,i根本就没用到,也就是说你外层的for循环在做无用功,你这个应该是写i和j做比较才对,j用来表示i后面的数组,这样才对