我是靠谱客的博主 沉默大白,最近开发中收集的这篇文章主要介绍python双指针快速排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原地排序,常数空间复杂度,平均时间复杂度O(logN),最差时间复杂度O(N2)

def QuickSort(data, start, end):
    if start<end:
        i, j = start, end
        anchor = data[i]
        while i != j :
            while data[j]>=anchor and j>i:
                j -= 1
            # when data[j]<anchor
            if j>i:
                data[i] = data[j]
                i += 1
            while data[i]<=anchor and i<j:
                i += 1
            if i<j:
                data[j] = data[i]
                j -= 1
        data[i] = anchor
        QuickSort(data, start, i-1)
        QuickSort(data, i+1, end)
    
import random
data = [random.randint(-10, 10) for _ in range(10)]
QuickSort(data, 0, len(data)-1)
print(data)

最后

以上就是沉默大白为你收集整理的python双指针快速排序的全部内容,希望文章能够帮你解决python双指针快速排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部