美文网首页
2018-04-15 快排

2018-04-15 快排

作者: 开子的私家地 | 来源:发表于2018-04-15 01:51 被阅读16次

递归版:
思路:以中点作为pivot,切分成left、mid、right左中右从小到大三部分,并且对left、right做递归。
最后得到升序序列。

    def qucik_sort(s):
        length = len(s)
        if length < 2:
            return s
        pivot = s[length/2]
        left = [i for i in s if i < pivot]
        mid = [i for i in s if i == pivot]
        right = [i for i in s if i > pivot]
        # print pivot,left,right
        # print 'sorting'
        return qucik_sort(left)+mid+qucik_sort(right)

——————————————————————————————
2018-04-17
上面的偷懒了,利用了python自带的列表推导式。
经典的快速排序是由quicksort和partition两部分组成

def quciksort(seq):
    if len(seq) <= 1: return seq
    lo, pi, hi = partition(seq)
    return quciksort(lo) + [pi] + quicksort(hi)
def partition()

partition函数部分略,有空补充
参考: python algorithms,p138

相关文章

  • 2018-04-15 快排

    递归版:思路:以中点作为pivot,切分成left、mid、right左中右从小到大三部分,并且对left、rig...

  • 快排

    快排代码

  • 快排

  • 快排

    昨天晚上睡觉前兴起准备十分钟写出快排,结果纠结了两个小时愣是没有搞出来,很郁闷地睡觉去。今天地铁上跟LG又重新缕了...

  • 快排

    基本思想: 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的...

  • 快排

  • 快排

    python实现 java实现:

  • 快排

    快速排序: 基本思想:1、先从数列中取出一个数作为基数。2、分区,将比此基数大的数放到它右边,小的数放到它左边。3...

  • 快排

    package sort;import java.util.Arrays;public class Quickso...

  • 快排

网友评论

      本文标题:2018-04-15 快排

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