【Python实现冒泡排序?如何在python中实现冒泡排序?】如果学过c语言肯定知道的四种排序方式,分别是冒泡排序,比较排序,插入排序,还有选择排序,那么我们如何在python中实现这个冒泡算法呢?接下来让小编我来带大家学习一下吧 。
首先我们来介绍一下什么是冒泡排序,冒泡排序就是把一组无序的数字,经过两两比较,在每一次比较之后,将较大的数字往后排序,重复进行直到没有元素需要再交换 。
文章插图
下面是代码实现:
nums=[2,3,7,1,10]#从0开始比较数列长度-1次for i in range(0,len(nums)-1): for j in range(0,len(nums)-1-i): #如果前一个值大于后一个值 if nums[j]>nums[j+1]: #两个值进行交换 nums[j],nums[j+1]=nums[j+1],nums[j]print(nums)这里特别说明一下len(num)-1-I,每次比较都是建立再上一次的比较之后的基础上的 。
第一次[2,3,7,1,10],10这个最大数值已经排列在最后,10第二次无需再比较一次 。
第二次[2,3,1,7,10],7第二大数值已经排列在倒数第二,10,7第三次也无需再比较一次 。
第三次[2,1,3,7,10],3第三大数值也已经排列在正确位置 。
以此类推,已经排列好的数值无需再比较一次,因此在内部循环时应该减少比较次数,而减少i就是每次排列后无需再比较的数值的个数 。
运行结果如下:
文章插图
这就是在python上的冒泡算法了,作为最简单的排序算法之一,就像英语书中的good morning一样,所以最为熟悉 。其实冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序 。但这种改进对于提升性能来说并没有什么太大作用,希望对大家有所帮助 。
推荐阅读
- 学python看什么书好?python网络编程这本书如何?
- python一维和二维列表如何初始化?python一维和二维列表的初始化方法
- python开发是做什么的?可以使用python做什么?
- Python压缩包处理模块zipfile和py7zr怎么使用?如何使用Python压缩包处理模块?
- 什么是python装饰器?如何使用python装饰器?
- python如何进行类型转换?python类型转换讲解
- Python中如何去除字符串中的空格?Python中常见字符串去除空格操作的方法有哪些?
- Python常见的字符串处理方式有哪些?常见的字符串处理方式
- 新手常见的python报错及解决方法 6种python常见的报错及解决方法
- 怎样在python中求和?sum求和函数如何在Python中使用?