随机生成一些数,然后进行冒泡排序,选择排序,快速排序,然后进行二分查找## 标题
def binarysearch(key,a):#二分查找
low=0
high=len(a)-1
while low<=high:
mid=(low+high)//2
if a[mid]<key:
low=mid+1
elif a[mid]>key:
high=mid-1
else:
return mid
return -1
‘’’‘def bubblesort(a):#冒泡
for i in range (len(a)-1,0,-1):
for j in range(i):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]’’’
‘’‘def selectsort(a):#选择排序
for i in range(0,len(a)-1):
m=i
for j in range (i+1,len(a)):
if a[m]>a[j]:
m=j
a[m],a[i]=a[i],a[m]’’’
def quitsort(a,low,high): #快排
i=low
j=high
if i>=j:
return a
key=a[i]
while i<j:
while a[j]>=key and i<j:
j-=1
a[i]=a[j]
while a[i]<=key and i<j:
i+=1
a[j]=a[i]
a[i]=key
#print(a)
quitsort(a,low,i-1)
quitsort(a,j+1,high)
def main():
import random
while 1:
a=[]
print (“生成的随机数如下:”)
a=random.sample (range(1,50),20)
print(a,"\n排序后结果如下:")
quitsort(a,0,len(a)-1)#快排排序
#bubblesort(a)#冒泡排序
#selectsort(a)#选择排序
print(a,"\n关键字ke35位于列表索引", binarysearch(35,a))
b=int(input(“输入非0数字继续,输入0跳出:”))
print("\n")
if b0:
break
if name’main’: main()