快速排序写两个函数,一个是partition部分

def partition(nums, left, right):
    p = nums[left]
    while left < right:
        while left < right and nums[right] > p:
            right -= 1
        nums[left] = nums[right]
        while left < right and nums[left] <= p:
            left += 1
        nums[right] = nums[left]
    nums[left] = p
    return left

第二个是quick_sort部分

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
def quick_sort(nums, left, right):
    if left < right:
        index = partition(nums, left, right)
        quick_sort(nums, left, index - 1)
        quick_sort(nums, index + 1, right)

测试:

nums = [2,3,1,6,4,8,7,0,9,12]
print (nums)
quick_sort(nums,0,len(nums)-1)
print (nums)

结果:

[2, 3, 1, 6, 4, 8, 7, 0, 9, 12]
[0, 1, 2, 3, 4, 6, 7, 8, 9, 12]

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄