python中经典的几大算法:冒泡、选择、插入、快速、希尔、归并排序
1、冒泡排序(升序)
俩俩(两个相邻的元素)进行比较,根据条件,交换位置,每一次都会选出一个最大(最小)的元素
如果小--大:每一次都会找到最大
如果大--小:每一次都会找到最小
li=[23,-8,26,-2,-6,-18,33]
def sortbubble(li):
n=len(li)
for i in range(n-1):
for j in range(n-1-i):
if li[j+1]<li[j]:
li[j+1],li[j]=li[j],li[j+1]
return li
print(sortbubble(li))
改写冒泡排序,实现时间复杂度为o(n)
li=[23,-8,26,-2,-6,-18,33]
def sortbubble(li):
n=len(li)
tag = True
for i in range(n-1):
for j in range(n-1-i):
if li[j+1]<li[j]:
li[j+1],li[j]=li[j],li[j+1]
tag=False
if tag==True:
return li
return li
print(sortbubble(li))