冒泡排序法python详解_排序算法1: 冒泡排序法(python示例)
01
概念及原理
冒泡排序法:又称为交换排序法,是从观察水中气泡变化构思而成。
原理:从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较。如此经过第一次扫描后就可以确保最后一个元素位于正确的顺序;经过第二次扫描可以确保倒数第二个元素位于正确的顺序。由此可知,N个元素经过(N-1)次扫描,就可以完成所有元素的排序。
下面使用55、23、87、62、16数列来演示排序过程,这样大家可以清楚地知道冒泡排序法的具体流程。从小到大排序,原始顺序如图:
1、第一次扫描,会先拿第一个元素55和第二个元素23进行比较,如果第二个元素小于第一个元素,则进行互换。接着拿55和87进行比较,就这样往右方向一直比较并交换。第一次比较完后,即可确定最大值在数组的最后面。下图是第一次扫描互换的一次过程,颜色填充为蓝色的数字是在此次扫描过程中向右交换前进的数字。
第一次扫描排序后的结果为:23、55、62、16、87。
2、第二次扫描,也是从头比较,但因为最后一个元素在第一次扫描就已确定是数组中的最大值(下图填充为绿色的数字),故只需比较3次即可把剩余数组元素的最大值排到剩余数组的最后面,即倒数第二个位置。
第三次扫描完,完成三个值的排序,如下图所示。
4、第四次扫描完,即可完成所有的排序,如下图所示。
由此可知,5个元素的冒泡排序法必须执行4(5-1)次扫描,第一次扫描需比较4(5-1)次,共比较了4+3+2+1=10次。
02
代码展示
下面设计一个python程序,并使用冒泡排序法来对数列进行从小到大的排序。
读入原始数列:
使用冒泡排序法排序:
排序过程为:
排序后的结果:
排序后的结果为:16 23 55 62 87
欢迎扫码学习风控知识
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)