代码很简单,方法类似于二分法,就是随机取值然后进行比较比他大的放右边,小的放左边,然后进行递归操作,直到所有的数组中都只有一个数值为止,此时所有的数组左边都是比它小的,右边都是比他大的。代码实现如下
import random
def qsort(nums):
if len(nums)<2:
return nums
cur = random.choice(nums)
left = [i for i in nums if i <cur ]
right = [i for i in nums if i>cur]
vars = [cur]
return qsort(left)+vars+qsort(right)
a = [1,3,23,251,24,445.5,25,235235]
print(qsort(a))