Java|实现冒泡排序

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

冒泡排序是一种简单的常见的排序算法,算法重复的走访排序的数组,通过不断的两两比较,最终把最大数浮于上方,好比是可乐的气泡冒泡的过程,所以生动的称之为“冒泡排序”。

接下来,将用java的方式进行编写。

解决方案

1流程图

Java|实现冒泡排序_第1张图片

2流程描述

比较相邻两个数,如果下标小的数大于了下标大的数,则交换两个数的位置。

按照上述方法,从第一个数开始比较,知道比较到最后一个数结尾,最后的数,则是该数组的最大值。

比出一个数后,继续比较,直到所有数都比较一次。直到没有数的顺序可以交换为止。

3生活实例

体育课上,老师让我们按照身高排位置,就是利用的冒泡算法。

4问题解决

4.1第一趟排序

我们拿到问题,大多数时候是不能一次性解决的,所以我先将第一趟排序实现,再做后面的研究。

public class BubbleSort {

    public static void main(String[] args) {

        //定义一个待处理数组

        int[] arr = {2, 0, 5, 9, 8, 4, 3, 1, 6, 7};

//定义中间变量,用于后面的元素交换

        int invar = 0;

        for (int i = 0; i

            if (arr[i]>arr[i+1]){

//交换顺序

                invar = arr[i+1];

                arr[i+1] = arr[i];

                arr[i] = invar;

            }

//打印每次的交换结果

        System.out.println(Arrays.toString(arr));

        }

    }

}

4.2完整代码

public class BubbleSort {

    public static void main(String[] args) {

        //定义一个待处理数组

        int[] arr = {2, 0, 5, 9, 8, 4, 3, 1, 6, 7};

        int invar = 0;

        for (int j = 0; j

                        for (int i = 0; i

                if (arr[i]>arr[i+1]){

                    //交换顺序

                    invar = arr[i+1];

                    arr[i+1] = arr[i];

                    arr[i] = invar;

                }

                System.out.println(Arrays.toString(arr));

            }

        }

    }

}

结果如下

Java|实现冒泡排序_第2张图片

结语

冒泡排序是非常经典的算法问题本身不难需要学习的是解决问题的思路。当遇到一个复杂的问题时,应该先从简单入手,把问题简单化。比如这次的冒泡排序,可以先完成一次排序,再来完成后面的多次排序,逐步优化代码。

END

主  编   |   王文星

责  编   |   王   宇

 where2go 团队


   

微信号:算法与编程之美          

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

你可能感兴趣的:(Java|实现冒泡排序)