from threading import Thread
from queue import Queue
def a (lst):
for i in range(len(lst)-1):
for j in range(len(lst)-1-i):
if lst[j]>lst[j+1]:
lst[j],lst[j+1]=lst[j+1],lst[j]
print(lst)
def b (lst):
i =1
while i<len(lst):
t=lst[i]
j=i-1
while j>=0 and lst[j]>t:
lst[j+1]=lst[j]
j-=1
lst[j+1]=t
i+=1
print(lst)
def c(lst):
i = 0
while i<len(lst)-1:
min = i
j = i+1
while j<len(lst):
if lst[j]<lst[min]:
min=j
j+=1
if min!=i:
lst[min],lst[i]=lst[i],lst[min]
i+=1
print(lst)
def d(lst,low,high):
key = lst[low]
while low<high:
while low<high and lst[high]>key:
high-=1
lst[low]=lst[high]
while low<high and lst[low]<key:
low+=1
lst[high]=lst[low]
lst[low]=lst[high]=key
return low
def dgdy(lst,low,high):
if low<high:
mid = d(lst,low,high)
dgdy(lst,low,mid-1)
dgdy(lst,mid+1,high)
if __name__ == '__main__':
q = Queue()
lst = [7,8,6,9,5,3,4,2,1]
data = input('请输入要选择的排序类型(a)冒泡,(b)插入,(c)选择,(d)快速')
data1 = data.lower()
if data1=='a':
t1 = Thread(target=a,args=(lst,))
t1.start()
elif data1== 'b':
t2 = Thread(target=b,args=(lst,))
t2.start()
elif data1=='c':
t3 = Thread(target=c,args=(lst,))
t3.start()
elif data1=='d':
t4 =Thread(target=d,args=(lst,0,len(lst)-1))
t4.start()
dgdy(lst,0,len(lst)-1)
print(lst)
使用多线程对四种排序方法的调用
最新推荐文章于 2021-02-16 19:52:27 发布