美文网首页
Python 排序算法之快速排序(1/8)

Python 排序算法之快速排序(1/8)

作者: Paycation | 来源:发表于2018-05-10 22:09 被阅读95次

    快速排序 quick sort

    一共有8大排序算法,不能一口吃个胖子,我一个算法写一个博客。
    原理:随机取一个数,然后把小于这个数的数放在一边,大于这个数的数放在另一边。对两边的数重复这个操作,直到两边的数只剩一个。
    思考:产生一个中间结果,然后继续对中间结果进行重复操作,直到达到某个条件。那么可以看出这里要用到递归。

    def quick_sort(lst):
        less = []
        greater = []
        if not lst:   # lst 为空时不再递归
            return lst
        el = lst.pop() # 吐出最后一项
        for i in lst: # 和剩余的未吐出的项比较
            if i < el:
                less.append(i)
            else:
                greater.append(i)
        return quick_sort(less) + [el] + quick_sort(greater)
        # [el] 记得要用 list,因为元素不能直接和 list 进行 + 操作。
    

    相关文章

      网友评论

          本文标题:Python 排序算法之快速排序(1/8)

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