自己定义的java冒泡排序列失败了。咋回事

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {5, 9, 8 };
        BubbleSort bb=new BubbleSort();
        bb.bubble(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);

        }
        /*bb.asceOrDesceBubble(arr);*/
    }//main 的结束

    public void bubble(int [] arry){//排序算法的定义,要求传入一个数组
        int muddle=0;
        for (int i = 1; i <=arry.length-1; i++) {//外层循环决定排序次数 int i=1,刚好是数组长度-1次
            for (int i1 = 1; i1 <= arry.length-i; i1++) {//内层决定每次排序的次数,第一次排序到数组的尽头,第二次就到了倒数第二个
                if(arry[i1-1]>arry[i1]){
                    //如果第一个比第二个大,就换位子
                    muddle=arry[i1-1];
                    arry[i1-1]=arry[i];
                    arry[i]=muddle; //这里的交换不如用于个交换算法搞定
                    

                }

                
            }


            
        }
    }
}

数组结果没变,咋回事啊,看着排序没有问题啊

找到错误了,后面的i1写成i了,书写错误,小细节真的难找,下次用个j好区分了,

你比较一下这个: https://blog.csdn.net/haha_66666/article/details/78461946

外层循环i明显错了,i从0开始,小于length,或者从1开始,小于等于length,不能再减1,八大排序排序可以参考https://blog.csdn.net/qq_41573860/article/details/110440269?utm_source=app&app_version=4.7.1&code=app_1562916241&uLinkId=usr1mkqgl919blen