美文网首页
用python再论快排

用python再论快排

作者: 舒小贱 | 来源:发表于2017-12-19 17:36 被阅读0次

今天看到用python实现的快排,虽然消耗了额外空间,但是真的很清新脱俗啊。。。

# -*- coding: UTF-8 -*-

def quicksort(array):
    if(len(array) <= 1):
        return array
    lower = []
    upper = []
    base = array.pop()
    for i in array:
        if i > base:
            upper.append(i)
        else:
            lower.append(i)
    return quicksort(lower) + [base] + quicksort(upper)


print(quicksort([5,2,7,9,12,3,7]))

运行结果:

E:\python_study>python 91.py
[2, 3, 5, 7, 7, 9, 12]

比base大的就丢到大的数组中,比base小的就丢到小的数组中。跟常规的交换位置实现的快排相比较,虽然消耗了额外的空间复杂度,但是思路清晰简单太多了。

相关文章

  • 用python再论快排

    今天看到用python实现的快排,虽然消耗了额外空间,但是真的很清新脱俗啊。。。 运行结果: 比base大的就丢到...

  • python实现快速排序

    受Haskell的快排启发 尝试了用python实现: 使用python实现更容易理解了(:зゝ∠)

  • 快速排序算法的实现( Golang 和 Python )

    Python 中一行代码搞定快排 Python 快速排序 Golang 快速排序

  • Python初体验-快排

    快排是分治法 复杂度O(nlogn) 关键点为划分数组

  • python之禅

    人生苦短,快用python

  • 2021-07-21 最小的K个数

    就是用快排,在快排的时候如果超过k,后面的就不进行排序

  • 不要再忘记快排了

    引子 快速排序是一个很难记的概念,倒不是说排序方法难记,就是为什么叫快速排序,到底快在哪儿,说不清楚。 回味归并排...

  • 笔试题-python实现快排

    快排思路 简单来说,就是找一个key值作为参考值,每次都找第一个。然后,用一个临时变量存参考值,再从头到尾,逐个比...

  • python 快排以及多种优化

    优化1:基准元素不再选择第一个元素,而是随机选择一个,这样避免了有序数组,时间复杂度最坏为log(n2) 的情况 ...

  • Python中的快排优化

    基本快速排序分析 以从小到大排序为例 选取一个主元(选取方式多样) 利用主元,将序列分为两个子序列,左侧都比主元小...

网友评论

      本文标题:用python再论快排

      本文链接:https://www.haomeiwen.com/subject/oydiwxtx.html