面试经常问冒泡排序,排序算法之冒泡排序总结

1 篇文章 0 订阅

在工作中,可能经常需要对某个数组进行排序,这个时候,就该展示排序算法了。常见的排序算法很多,像选择排序、冒泡排序、快速排序等等。今天,主要总结下冒泡排序,面试中,可能也会经常问到,笔试写冒泡排序等。

        假如有一个数组:{23,2,15,68,99,17,36,75};

        冒泡排序的思想

        第1次比较:将第一个数和第二个数进行比较,如果第一个数字大于第二个数字,则进行位置交换;

        第2次比较:将第二个数和第三个数进行比较,如果第二个数字大于第三个数字,则进行位置交换;

        第3次比较:将第三个数和第四个数进行比较,如果第三个数字大于第四个数字,则进行位置交换;

        一直这样比较,直到第一次比较结束,这样比较完之后,当前数组中最大的数就排到最后一位了;

        第一次整体比较详解过程如下:

        原始数组:23   2   15  68   99   17  36  75       

        第一次小比较:23和2比较,23比2大,则交换;比较后:2   23   15  68   99   17  36  75 ;

        第二次小比较:23和15比较,23比15大,则交换:比较后:2   15   23  68   99   17  36  75 ;

        第三次小比较:23和68比较,23比68小,不交换:比较后:2   15   23  68   99   17  36  75 ;

        第四次小比较:68和99比较,68比99小,不交换:比较后:2   15   23  68   99   17  36  75 ;

        第五次小比较:99和17比较,99比17大,则交换:比较后:2   15   23  68   17   99  36  75 ;

        第六次小比较:36和99比较,99比36大,则交换:比较后:2   15   23  68   17   36  99  75 ;

        第七次小比较:99和75比较,99比75大,则交换:比较后:2   15   23  68   17   36  75  99 

        第一次整体比较完之后,最大的数已经排在末尾,然后取第一个数字,再重复上面的步骤,依次进行比较,直到所有数字比较完成。

       代码实现如下:

       public static void main(String[] args) {
        int[] numbers = {23,2,15,68,99,17,36,75};
        for(int i=0;i<numbers.length;i++){
            for(int j=0;j<numbers.length-i-1;j++) {
                if(numbers[j]>numbers[j+1]) {
                    int temp = numbers[j];
                    numbers[j] = numbers[j+1];
                    numbers[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(numbers));    
    }

    程序运行结果图如下:

   

   冒泡排序知识的总结完了,还有很多排序算法,以后的文章中再总结。感觉开发工作要学的知识挺多的,但是我们要分清楚主次。知识虽然枯燥,但是我们多看多写,就会记得更加的深刻。我们应该不断的奋斗,成就美好的人生。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值