算法--快排

Posted libbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法--快排相关的知识,希望对你有一定的参考价值。

核心:对于增序,目标值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)

以上是关于算法--快排的主要内容,如果未能解决你的问题,请参考以下文章

七大排序算法(插排,希尔,选择排序,堆排,冒泡,快排,归并)--图文详解

具体解释Redis源代码中的部分高速排序算法(pqsort.c)

八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)

快排算法的简单实现

排序算法的简单实现(冒泡和快排)

C语言快排