实现
真没看懂韩老师的,这玩意递归没法测试5w个。www.bilibili.com/video/BV1E4…
import random
import time
tempList = [random.randint(0, 100000) for x in range(200)]
def get_mid(l, left, right):
# 划分比这个数大和小的列表
pivot = l[left]
while left < right:
while l[right] >= pivot and left < right:
right -= 1
l[left] = l[right]
while l[left] <= pivot and left < right:
left += 1
l[right] = l[left]
l[left] = pivot
return left
def quickSort(l, left, right):
# 最后只剩下一个数
if left < right:
mid = get_mid(l, left, right)
quickSort(l, left, mid - 1)
quickSort(l, mid + 1, len(l) - 1)
print("==============")
start = time.time()
quickSort(tempList, 0, len(tempList) - 1)
end = time.time()
print(end - start)