概述
python的冒泡排序
一、定义
冒泡排序:(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到不再需要交换,也就是说该数列已经排序完成。
二、推理
按照定义,两两排序,遇到第一次交换就重新遍历,从第一个数开始,直到不再需要交换,排序完成。
在这里,分享三种冒泡排序的方法。
三、代码
第一种:最普遍的冒泡算法
lista = [1,5,47,31,945,458,21,6] #定义一组数,准备排序
for i in range(len(lista) - 1): #从第一个数取到倒数第二个数,因为最后一个数没有相邻的数来进行排序
for j in range(i+1,len(lista)): #选取的元素与他后面所有的元素进行两两比较,遇到第一个需要交换的,重新遍历
if lista[i] >lista[j]: #判断是否需要排序
lista[j],lista[i] = lista[i],lista[j] #交换位置
print(lista) #检查运行过程,不做代码主要内容
pass
pass
pass
print(lista) #输出结果,本次为从小到大
第二种:最土的冒泡算法(不推荐用)将大的向右堆
lista = [1,5,47,31,945,458,21,6]
for i in range(len(lista) - 1): #交换轮次,数的个数-1
for j in range(len(lista) - i-1): #每一个轮次两个相邻的数都要比一遍,直到没有交换的后,重新遍历
if lista[j] >lista[j+1]:
lista[j],lista[j+1] = lista[j+1],lista[j]
print(lista) #检验运行过程
pass
pass
print(lista)
第三种:最土冒泡算法的优化(节省了比较的次数)
lista = [1,5,47,31,945,458,21,6]
for i in range(len(lista) - 1): #交换轮次,数的个数-1
flag = False #定义一个标记
for j in range(len(lista) - i-1): #每一个轮次两个相邻的数都要比一遍
if lista[j] >lista[j+1]:
print(lista)
lista[j],lista[j+1] = lista[j+1],lista[j]
flag = True #交换就做标记
pass
pass
if not flag: #当不需要交换时,退出循环
break
print(lista)
四、总结
冒泡排序为简单的排序内容,需熟练掌握其中一种方法!
以上内容仅供参考,切勿用于商业用途,定义内容来自万能的百度百科,其余如有雷同,纯属偶然!
最后
以上就是糊涂母鸡为你收集整理的python的冒泡排序python的冒泡排序的全部内容,希望文章能够帮你解决python的冒泡排序python的冒泡排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复