''' 实现对于输入数组进行冒泡排序,即扫描交换 实际上冒泡排序的过程是将数组中紧邻逆序对个数减少的过程 经过一次完整的扫描交换之后,数组中最大的数值被放到了最后一位的元素 下一次的扫描交换操作只用对于从第0个元素到倒数第二个元素之间 体现了减而治之的思想 冒泡排序算法的时间复杂度,(算法的时间复杂度主要体现在循环) O(n**2) 指数级别的计算复杂度 用O记号表明算法的计算复杂度时,常数项的相乘或者相加可以省略,低次幂的相对于高次幂可以省略 ''' def bubble_sort(a): for i,elem in enumerate(a): if i==len(a)-1: break for j in range(len(a)-i-1): if a[j]>a[j+1]: #交换a[j]和a[j+1] temp=a[j] a[j]=a[j+1] a[j+1]=temp return a if __name__=='__main__': a=[5,9,7,0,1,4,0,2,5,8] assert bubble_sort(a)==sorted(a)
python 冒泡排序
最新推荐文章于 2023-10-24 23:33:30 发布