算法--快排
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)