from random import randint
defmaopao(lst):
flag =Falsefor i inrange(len(lst)):if i+1<len(lst)and lst[i]>lst[i+1]:
lst[i],lst[i+1]= lst[i+1],lst[i]
flag =Truereturn flag,lst
if __name__ =='__main__':
l =[randint(1,101)for i inrange(10)]
flag =Truewhile flag:
flag, l = maopao(l)ifnot flag:breakelse:
flag, l = maopao(l)print(l)
选择排序
from random import randint
defxuanze(lst):
tep =0for i inrange(len(lst)):
m = tep
for i inrange(tep,len(lst)):if lst[tep]> lst[i]and lst[m]>lst[i]:
m = i
lst[m],lst[tep]= lst[tep],lst[m]
tep = tep+1return lst
if __name__ =='__main__':
l =[randint(1,101)for i inrange(10)]print(xuanze(l))
二分法查找
from random import randint
deferfenfa(lst,a):
start =0
lens =len(lst)-1while start <= lens:if a < lst[(start+lens)//2]:# 11 12
lens =(start+lens)//2-1elif a > lst[(start+lens)//2]:
start =(start+lens)//2+1elif a == lst[(start+lens)//2]:print(lst[(start+lens)//2])breakelse:print("没有找到!")if __name__ =="__main__":
lst =[randint(1,101)for i inrange(20)]
lst =list(set(lst))
lst.sort()
erfenfa(lst,lst[len(lst)-1])