传入指令 通过四种排序打印出 排序后的序列

from threading import Thread
import time
def px(number,lst):
    if number == 1:
        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)
    elif number == 2:
        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)
    elif number ==3:
        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[i], lst[min] = lst[min], lst[i]
            i += 1
        print("选择排序:",lst)
    elif number == 4:
        def patition(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] = key
            return low

        def dgdy(lst, low, high):
            if low < high:
                mid = patition(lst, low, high)
                dgdy(lst, low, mid - 1)
                dgdy(lst, mid + 1, high)

        dgdy(lst, 0, len(lst)-1)
        print("快速排序:",lst)


if __name__ == '__main__':
    lst = [6,2,1,7,9,10,3]
    data =int(input("请输入你的数字:"))
    t = Thread(target=px,args=(data,lst))
    t.start()
    t.join()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值