时间:2021-05-22
算法原理:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
实现
假设有这样一个数组: [4, 1, 3, 2]
冒泡排序为从第一个数开始,吧这个数与后面的数比较,如果这个数比后面的大,就交换他们的位置。
比如,第一次比较4和1,发现4比1大,交换 -> [1, 4, 3, 2]
第二次比较4和3,发现还是4大,交换 -> [1, 3, 4, 2]
第三次比较4和2,仍然4比2大,交换 -> [1, 3, 2, 4]
这样在进行了第一轮循环之后,最大的数4就被顶到数组的最后去了,就像泡泡一样从水底冒起来一样。那么,要完成整个数组的排序,只需要把最大的数顶到最后,然后第二轮再把第二大的数顶到倒数第二的位置,再来第三轮。。。。一直循环下去。
回到刚才的数组,第二轮比较开始,现在的状态是[1, 3, 2, 4]
比较1和3,1小于3,跳过 -> [1, 3, 2, 4]
比较3和2,3大于2,交换 -> [1, 2, 3, 4]
这一轮到这里就可以停止了,因为第一轮已经把最大的4顶到了最后,所以第二轮只要确保第二大的数顶到倒数第二就行。
然后继续第三轮(虽然目前看起来已经排序完成了)
比较1和2,不用交换[1, 2, 3, 4]
这里比较就全部完成。原理非常简单。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、概述: 本文给出常见的几种排序算法的原理以及Java实现,包括常见的简单排序和排序算法,以及其他常用的算法知识。简单排序:冒泡排序、选择排序、插入排序排序
我简单的绘制了一下排序算法的分类,蓝色字体的排序算法是我们用python3实现的,也是比较常用的排序算法。Python3常用排序算法1、Python3冒泡排序—
冒泡排序大学学习数据结构与算法最开始的时候,就讲了冒泡排序;可见这个排序算法是多么的经典。冒泡排序是一种非常简单的排序算法,它重复地走访过要排序的数列,每一次比
本文实例讲述了C语言排序算法之冒泡排序实现方法。分享给大家供大家参考,具体如下:冒泡排序和改进的冒泡排序/*--------------------------
本文分享的实例主要是Python编程二分法实现冒泡算法+快速排序,具体如下。冒泡算法:#-*-coding:UTF-8-*-#冒泡排序deffunc(lt):i