冒泡排序
思想:每次比较相邻两个元素,如果它们的顺序错误,就对换它们的位置。
每一趟只能将一个元素归位,如果有n个元素需要进行排序,则需要将n-1个元素进行归位,即进行(n-1)躺操作,已经归位的不再比较。
最优时间复杂度:O(n) 【表示便利一次没有发现任何可以交换的元素,排序结束】
最坏时间复杂度:O(n*n)
稳定性:稳定
代码:
def bubble_sort(alist):
n=len(alist)
for i in range(n-1): #进行n-1躺排序
count=0
for j in range(n-1-i): #已经归位的不再进行比较
if alist[j]>alist[j+1]:
alist[j],alist[j+1]=alist[j+1],alist[j]
count+=1
if count==0: #最优情况
return
本文深入讲解了冒泡排序算法的基本思想,通过比较相邻元素并交换位置实现排序,详细阐述了其时间复杂度特性,包括最优O(n)和最坏O(n*n),并提供了Python代码示例。
667

被折叠的 条评论
为什么被折叠?



