冒泡排序法遇到的问题

我的冒泡排序法如果数组是奇数就最后一个数字不是最大的,但是没有排到前面来,如果是偶数的话就是倒数第二个


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后面的数组,这样才对