import random #一个列表进行排序 test_list = [34,13,57,38,3,30,58,394,92,24] '''快速排序就是将问题拆分成最小的单元,当最小单元也符合规律的时候,这是问题总的集合单元也会符合规律, 这叫做基线条件,基线值就是最小的符合蓟县条件的单元''' #排序问题的基线值就是1个元素来比较大小 def quicksort(test_list): if len(test_list) < 2: return test_list else: #index = random.randint(0, len(test_list)-1) pivot = test_list[0] #递归条件 最优的选择就是随机选择一个元素作为基线值,但是我现在无法实现因为会出现一个子列表出现为0的现象 less = [i for i in test_list[1:] if i <= pivot] qreater = [i for i in test_list[1:] if i > pivot] return quicksort(less)+[pivot]+quicksort(qreater) def main(): #index = random.randint(0,len(test_list)-1) #print(index) print(quicksort(test_list)) if __name__ == '__main__': main()