码迷,mamicode.com
首页 > 编程语言 > 详细

算法--快排

时间:2020-07-02 18:21:00      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:lan   +=   lis   目标   def   sort   位置   有序   and   

核心:对于增序,目标值target左边元素的值都小于target,右边元素的值都大于target,然后使用递归的方式使得每一位元素都有序

def quicksort(nums:List[int], left:int, right:int):
    if left < right:
        # 为了方便,一般以左边元素为target,更好地方式的随机位置
        target = nums[left]
        low, high = left, right
        while low < high:
            while target <= nums[high] and low < high:
                high -= 1
            nums[low] = nums[high]
            while target >= nums[low] and low < high:
                low += 1
            nums[high] = nums[low]
            
        nums[low] = target
        quicksort(nums, left, low - 1)
        quicksort(nums, low + 1, right)

算法--快排

标签:lan   +=   lis   目标   def   sort   位置   有序   and   

原文地址:https://www.cnblogs.com/libbin/p/quicksort.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!