冒泡排序算法

传统的冒泡排序

public static void bubblingSort(int[] nums){
        int len = nums.length;

        int count = 1;
        int temp = 0;

        for (int j = 0; j < len ; j++) {
            for (int i = 0; i < len - 1 - j; i++) {
                if(nums[i] > nums[i+1]){
                    temp = nums[i];
                    nums[i] = nums[i+1];
                    nums[i+1] = temp;
                }
                System.out.println(Arrays.toString(nums));
            }
            System.out.println("===========");

        }

    }

测试结果

image.png

从测试结果可以看出来在倒数第四次就已经排好序了,其实就不用在继续排序了,所以这个算法是可以优化一下,排好序了就让它停止了
什么时候排好了呢?就是当一次冒泡,没有发生交换的时候,就可以证明数组已经排好序了

优化代码

 public static void bubblingSort(int[] nums){
        int len = nums.length;

        int count = 1;
        int temp = 0;
        for (int j = 0; j < len ; j++) {
            boolean flag = true;
            for (int i = 0; i < len - 1 - j; i++) {
                if(nums[i] > nums[i+1]){
                    temp = nums[i];
                    nums[i] = nums[i+1];
                    nums[i+1] = temp;
                    flag = false;
                }
                System.out.println(Arrays.toString(nums));
            }
            System.out.println("===========");
            //当没有发生交换的时候就结束循环
            if(flag){
                break;
            }
        }

    }

测试结果

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、冒泡排序 冒泡排序的英文Bubble Sort,是一种最基础的交换排序。 大家一定都喝过汽水,汽水中常常有许多...
    攻城狮l阅读 167评论 0 1
  • 冒泡排序(Bubble Sort)算法是所有排序算法中最简单、最基本的一种。冒泡排序算法的思路就是交换排序,通过相...
    敲代码的蝌蚪阅读 456评论 0 1
  • 一、简述 冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,...
    Djbfifjd阅读 294评论 0 3
  • 1、原理 比较两个相邻的元素,将值大的元素交换到右端。 2、思想 依此比较相邻两个数,小的数放在前面,大的数放在后...
    唐_方阅读 4,497评论 0 0
  • 1.什么是冒泡排序算法? 将一组元素两两相比较,直至该组元素顺序为由小到大。 2.冒泡排序算法原理: (1)从首位...
    lovinglili阅读 371评论 0 2