冒泡排序
# 时间复杂度 O(1) O(logN) O(n)
# 空间复杂度
a=[1,2,7,8,9,65,4,11]
for i in range(0,len(a)-1):
for j in range(0,len(a)-1):
if a[j]<= a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
else:
pass
print(a)#时间复杂度=O(n^2)
选择排序
a=[1,2,7,8,9,20,65,4,5,11]
for i in range(0,len(a)):
index=i
for j in range(i,len(a)):
if a[index]>a[j]:
a[index],a[j]=a[j],a[index]
else:
pass
print(a)
a=[1,2,7,8,9,20,65,4,5,11,11,3,13,27]
for i in range(0,len(a)):
for j in range(i,len(a)):
if a[i]>a[j]:
a[i],a[j]=a[j],a[i]
else:
pass
print(a)
插入排序
a=[11,53,1,4,8,4,9,19,22,13]
for i in range(0,len(a)-1):
for j in range(i+1,0,-1):
if a[j]<a[j-1]:
a[j],a[j-1]=a[j-1],a[j]
print(a)
二分查找法
a=[1,2,5,7,11,14,19,24,28,35,48,56,61,77,101]
item=int (input("enter the num="))
l=0
r=len(a)-1
while r>=l:
mid=int((r+l)/2)
g=a[mid]
if item==g:
print(mid)
break
elif item>g:
l=mid+1
elif item<g:
r=mid-1
else:
print("we don't have the num")