源代码,可以直接复用
#快速排序
import random
import sys
sys.setrecursionlimit(15000)
def quicksort(num_list):
lenth = len(num_list)
if lenth<=1:
return num_list
# 找到一个随机的数组下标
temi = random.randint(0,lenth-1)
#取到这个数组中的随机值
tem = num_list[temi]
left = []
right = []
for i in range(0 ,lenth):
if num_list[i]>tem:
right.append(num_list[i])
else:
left.append(num_list[i])
#开始递归了 ,递归一般和分治法进行结合,大的步骤分解成很多歌相同的小步骤
return quicksort(left)+quicksort(right)
if __name__ == '__main__':
num = [3,6,2,8,1,12,55,32]
b = quicksort(num)
print(b)