from threading import Thread
from queue import Queue
import time,random
def xca(q):
lsta = []
for i in range(11):
lsta.append(random.randint(1,11))
time.sleep(1)
print('冒泡排序前:',lsta)
q.put(lsta)
def xc1(q):
lst1 = q.get()
for i in range(len(lst1)-1):
for j in range(len(lst1)-1-i):
if lst1[j] > lst1[j+1]:
lst1[j+1],lst1[j] = lst1[j],lst1[j+1]
time.sleep(1)
print('冒泡排序后:',lst1)
def xcb(z):
lstb = []
for i in range(11):
lstb.append(random.randint(1,11))
time.sleep(1)
print('插入排序前:',lstb)
z.put(lstb)
def xc2(z):
lst2 = z.get()
y = 1
while y < len(lst2):
t = lst2[y]
j = y - 1
while j >= 0 and lst2[j] > t:
lst2[j+1] = lst2[j]
j -= 1
lst2[j+1] = t
y += 1
time.sleep(1)
print('插入排序后:', lst2)
def xcc(c):
lstc = []
for i in range(11):
lstc.append(random.randint(1,11))
print('选择排序前:',lstc)
c.put(lstc)
def xc3(c):
lst3 = c.get()
i = 0
while i < len(lst3)-1:
mid = i
j = i + 1
while j < len(lst3):
if lst3[j] < lst3[mid]:
mid = j
j += 1
if mid != lst3[i]:
lst3[mid],lst3[i] = lst3[i],lst3[mid]
i += 1
print('选择排序后:',lst3)
def xcd(d):
lstd = []
for i in range(11):
lstd.append(random.randint(1,11))
print('快速排序先:',lstd)
d.put(lstd)
def xc4(d):
lst3 = d.get()
def patition(a,low,high):
key = lst3[low]
while low < high:
while low < high and lst3[high] >= key:
high -= 1
lst3[low] = lst3[high]
while low < high and lst3[low] <= key:
low += 1
lst3[high] = lst3[low]
lst3[low] = key
return low
def dgdy(a,low,high):
if low < high:
mid = patition(a,low,high)
dgdy(a, low, mid - 1)
dgdy(a, mid + 1, high)
dgdy(a, 1, 11)
print('快速排序后:',lst3)
if __name__ == '__main__':
q = Queue()
z = Queue()
c = Queue()
d = Queue()
t1 = Thread(target=xca,args=(q,))
t2 = Thread(target=xc1, args=(q,))
t3 = Thread(target=xcb, args=(z,))
t4 = Thread(target=xc2, args=(z,))
t5 = Thread(target=xcc, args=(c,))
t6 = Thread(target=xc3, args=(c,))
t7 = Thread(target=xcd, args=(d,))
t8 = Thread(target=xc4, args=(d,))
t1.start()
t2.start()
t3.start()
t4.start()
t5.start()
t6.start()
t7.start()
t8.start()
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交