大飞

大飞 关注TA

挑战一切!

大飞

大飞

关注TA

挑战一切!

  •  世界的顶端
  • 混口饭吃
  • 写了333,609字

该文章投稿至Nemo社区   Python  板块 复制链接


Python基础算法---冒泡排序

发布于 2018/02/03 10:11 1,764浏览 0回复 668

# 冒泡排序算法的运作如下:
#
# 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
# 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
# 针对所有的元素重复以上的步骤,除了最后一个,总共需要重复n-1次。
# 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

冒泡算法需要执行n-1次排序,时间复杂度O(n^2),以下图代表一次交换结果:

B6B6A861-E659-4515-A02F-C9AD70416716


36E6BCDB-0828-4AB9-939E-19F62B7CA5FF

# 算法
import time
### 冒泡排序算法
#
# 冒泡排序算法的运作如下:
#
# 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。
# 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
# 针对所有的元素重复以上的步骤,除了最后一个。
# 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

mublist=[22,89,78,66,15,29,87,55,43]

def bobble_sort(list):
# 需要执行n-1冒泡次数
for i in range(len(list)-1,0,-1):
#进行交换数据
for j in range(i):
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]

bobble_sort(mublist)
print(mublist)

本文标签
 {{tag}}
点了个评