冒泡排序的介绍
冒泡排序是一种简单直观的排序算法,它重复的遍历要排序的数列,一个比较两个元素,如果顺序错误,就将它们进行交换,重复工作,直到它们不需要再交换。
工作原理为 :
比较相邻的两个元素,如果第一个元素比第二个元素大,则交换这两个元素的顺序。
每一对的相邻元素进行比较,从第一对到最后一对,最后末尾的元素为最大值。
每次的循环比较,去掉上一个循环出来的末尾最大值。
冒泡排序的实例
li = [54,26,93,17,77,31,44,55,20] #一个无序列表
def bubble_sort(li):
for j in range(len(li)-1,0,-1):
for i in range(j):
if li[i] > li[i+1]:
li[i],li[i+1] = li[i+1],li[i]
bubble_sort(li)
print(li)
li = [54,26,93,17,77,31,44,55,20] #一个无序列表
def bubble_sort(li):
for j in range(len(li)-1):
for i in range(0,len(li)-1-j):
if li[i] > li[i+1]:
li[i],li[i+1] = li[i+1],li[i]
bubble_sort(li)
print(li)
以上为冒泡排序的两种方法,冒泡排序的方法有很多,不止这两种 以上面的题目为例 总结一下冒泡排序,要得到该列表第一次进行遍历时,移动的次数。通过元素的下标 对元素进行比较排序
冒泡排序的时间复杂度
冒泡排序的最坏时间复杂度为O(n^2)