使用多线程对四种排序方法的调用

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)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值