• 技术文章 >后端开发 >Python教程

    Python的快速排序方法

    巴扎黑巴扎黑2017-08-07 13:24:14原创495
    这篇文章主要介绍了Python实现的快速排序算法,结合实例形式分析了Python快速排序的原理、实现方法与相关操作技巧,需要的朋友可以参考下

    本文实例讲述了Python实现的快速排序算法。分享给大家供大家参考,具体如下:

    快速排序基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    如序列[6,8,1,4,3,9],选择6作为基准数。从右向左扫描,寻找比基准数小的数字为3,交换6和3的位置,[3,8,1,4,6,9],接着从左向右扫描,寻找比基准数大的数字为8,交换6和8的位置,[3,6,1,4,8,9]。重复上述过程,直到基准数左边的数字都比其小,右边的数字都比其大。然后分别对基准数左边和右边的序列递归进行上述方法。

    实现代码如下:


    def parttion(v, left, right):
      key = v[left]
      low = left
      high = right
      while low < high:
        while (low < high) and (v[high] >= key):
          high -= 1
        v[low] = v[high]
        while (low < high) and (v[low] <= key):
          low += 1
        v[high] = v[low]
        v[low] = key
      return low
    def quicksort(v, left, right):
      if left < right:
        p = parttion(v, left, right)
        quicksort(v, left, p-1)
        quicksort(v, p+1, right)
      return v
    s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
    print("before sort:",s)
    s1 = quicksort(s, left = 0, right = len(s) - 1)
    print("after sort:",s1)

    运行结果:


    before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
    after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]

    以上就是Python的快速排序方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 方法 快速
    上一篇:python的数字类型 下一篇:Python如何读取sqlite数据库的文件?
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• Python怎么利用contextvars实现管理上下文变量• 总结分享Python冷门的技巧• 带你了解Python进程管理神器Supervisor• Python的functools模块使用总结• python虚拟环境配置与管理
    1/1

    PHP中文网