前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java|实现冒泡排序

Java|实现冒泡排序

作者头像
算法与编程之美
发布2020-04-15 15:42:15
6780
发布2020-04-15 15:42:15
举报

问题描述

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

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

解决方案

1流程图

2流程描述

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

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

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

3生活实例

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

4问题解决

4.1第一趟排序

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

代码语言:javascript
复制

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 <arr.length-1 ; 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完整代码

代码语言:javascript
复制
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 <arr.length-1 ; j++) {



                        for (int i = 0; i <arr.length-1-j ; 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));

            }

        }

    }

}

结果如下:

结语

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

END

主 编 | 王文星

责 编 | 王 宇

where2go 团队

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档