冒泡排序简单的一个做法

首先创建一个java数组

public static void main(String[] args) {
        int[] arr={9,8,7,6,5,4};
        System.out.println(Arrays.toString(arr));
    }

输出的结果:

第二步:

写一个for循环

for (int i = 0; i < arr.length-1; i++) {
            if(arr[i]>arr[i+1]){
                int m=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=m;
            }
        }

循环的次数就是数组的长度减去一,判断两个相邻数,如果arr[0]>arr[1]那么两个值交换,并继续下一次判断,arr[1]和arr[2]进行比较,一直到没有再需要交换的

9已经到最后一位了
public static void main(String[] args) {
        int[] arr={9,8,7,6,5,4};

        for (int i = 0; i < arr.length-1; i++) {
            if(arr[i]>arr[i+1]){
                int m=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=m;
            }
        }
        System.out.println(Arrays.toString(arr));
        for (int i = 0; i < arr.length-1; i++) {
            if(arr[i]>arr[i+1]){
                int m=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=m;
            }
        }
        System.out.println(Arrays.toString(arr));
    }

通过以上代码又可以发现什么呢?
8到了倒数第二了,而我们的程序好像写了两次,那只要重复六次好像就完成了,那我们再在外面套一个循环

最终结果:

public static void main(String[] args) {
        int[] arr={9,8,7,6,5,4};
        for (int j = 0; j < arr.length-1; j++) {
            for (int i = 0; i < arr.length-1; i++) {
                if(arr[i]>arr[i+1]){
                    int m=arr[i];
                    arr[i]=arr[i+1];
                    arr[i+1]=m;
                }
            }
        }    
        System.out.println(Arrays.toString(arr));
    }


猜你喜欢

转载自blog.csdn.net/qq_26173219/article/details/80221424