【python】快速排序?

题目:如何进行快速排序?

分析:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后把所有比它小的数都放到它前面,大后方面。

code:
def quick_sort(lists, left, right):

    if left > right:

        return lists

    key = lists[left]

    while left < right:

        if left < right and lists[right] >= key:

            right -= 1

        lists[left] = lists[right]

        if left < right and lists[left] <= key:

            left += 1

        lists[right] = lists[left]

    lists[right] = key

    quick_sort(lists, low, left - 1)

    quick_sort(lists, left + 1, high)

    return lists

if __name__ == "__main__":

    lists = [3, 4, 2, 8, 9, 5, 1]

    print(quick_sort(lists, 0, len(lists) - 1))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序...
    nine_9阅读 1,640评论 0 0
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,438评论 0 10
  • 本文主要介绍了常见的8大排序算法基本概念以及其Python实现方式,如果你是Java程序员,也可以看看之前我们介绍...
    派派森森阅读 140评论 0 0
  • 插入排序def inster_sort(lists): count = len(lists) for ...
    _Haimei阅读 336评论 0 1
  • 苗苗老师说要每天复盘,每天不断地重复,演练。我说说今天带老师去春游的复盘吧。其实昨天是有一些不好的情绪,(已经自我...
    水木的小院阅读 279评论 0 2