桶排序(简化版)
O(M+N)
a = [5,6,9,2,3,5,4,7,2,1,0,6]
t=[] # 初始化t(桶)
for i in range(10):
t.append(0)
for item in a:
t[item]+=1 # 改为 t[item]=1 去重再排序
n=0
b=[]
for item in t:
for k in range(item):
b.append(n)
n+=1
print(b)
冒泡排序
O(N^2)
a = [5,6,9,2,3,5,4,7,2,1,0,6]
m=len(a)-1
n=m
while n>0:
j=0
while j<n:
if a[j]>a[j+1]:
t=a[j]
a[j]=a[j+1]
a[j+1]=t
j+=1
n-=1
a
选择排序
最慢 O(N^2) 平均 O(NlogN)
a = [5,6,9,2,3,5,4,7,2,1,0,6]
def quicksort(left,right):
if left>right:
return
temp=a[left] # temp = left 不对 Why?
j=right
i=left
while i!=j: