python 冒泡排序

 # 冒泡排序:基础冒泡排序,每趟比较次数减1次

lst = [1, 9, 8, 5, 6, 7, 4, 3, 2]
length = len(lst)
for i in range(length):
  for j in range(length-i-1):
    if lst[j] > lst[i]:
    tmp = lst[j]
    lst[j] = lst[j+1]
    lst[j+1] = tmp
print(lst)

# 冒泡排序:某一趟扫描,如果发现没有可交换的,可以退出
lst = [1, 2, 3, 4, 5, 6, 7, 9, 8]
length = len(lst)
for i in range(length):
  flag = False
  for j in range(length-i-1):
    if lst[j] > lst[i]:
    tmp = lst[j]
    lst[j] = lst[j+1]
    lst[j+1] = tmp
    flag = True
  if not flag: # 内部循环一趟后,发现flag不是True,表示没有交换
  break # 没有交换退出外层循环,冒泡排序结束
print(lst)

# 冒泡排序:时间复杂度O(n平方)

posted on 2018-08-29 12:58  栗子测试  阅读(235)  评论(0编辑  收藏  举报