`
wanglei6744
  • 浏览: 26181 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

python 诠释 快速排序

阅读更多

 

快速排序使用分治法 (Divide and conquer)策略来把一个串行 (list)分为两个子串行(sub-lists)。

步骤为:

  1. 从数列中挑出一个元素,称为 "基准"(pivot),
  2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition) 操作。
  3. 递归 地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。

(以上摘自 wiki)

python 实现为:

 

def sub_sort(array,low,high) :
  3     key = array[low]
  4     while low < high :
  5         while low < high and key <= array[high] :
  6            high -= 1
  7         while low < high and key > array[high] :
  8            array[low] = array[high]
  9            low += 1
 10            array[high] = array[low]
 11     array[low] = key
 12     return low
 13 
 14 
 15 
 16 def quick_sort(array,low,high) :
 17     if low < high :
 18         key_index = sub_sort(array,low,high)
 19         quick_sort(array,low,key_index)
 20         quick_sort(array,key_index+1,high)
 21 
 22 
 23 if __name__ == '__main__':
 24     array = [8,10,6,4,5,13,26,18]
 25     print array
 26     quick_sort(array,0,len(array)-1)
 27     print array
  • 大小: 18.8 KB
分享到:
评论

相关推荐

    如何使用Python实现快速排序+编程知识+技术开发

    快速排序:如何使用Python实现快速排序+编程知识+技术开发; 快速排序:如何使用Python实现快速排序+编程知识+技术开发; 快速排序:如何使用Python实现快速排序+编程知识+技术开发; 快速排序:如何使用Python实现...

    python实现快速排序源码

    python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码python实现快速排序源码

    基于python实现的快速排序程序源码

    基于python实现的快速排序程序源码基于python实现的快速排序程序源码基于python实现的快速排序程序源码基于python实现的快速排序程序源码基于python实现的快速排序程序源码基于python实现的快速排序程序源码基于...

    0026. python 快速排序教程.md

    0026. python 快速排序教程.md 0026. python 快速排序教程.md 0026. python 快速排序教程.md 0026. python 快速排序教程.md 0026. python 快速排序教程.md 0026. python 快速排序教程.md 0026. python 快速排序教程....

    Python 算法 快速排序.py

    Python 算法 快速排序.py

    快速排序.py python代码实现

    快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python...

    python实现快速排序

    利用python代码实现数据结构的经典算法——快速排序算法。

    Python实现快速排序.rar

    在这个Python实现的压缩包中,包含了一个名为"Python实现快速排序.py"的文件,我们可以深入探讨一下快速排序的原理以及如何用Python来实现它。 快速排序的步骤如下: 1. **选择枢轴元素(Pivot Selection)**:从...

    快速排序python

    利用python进行快速排序,代码可以直接用

    Python实现快速排序算法

    一个典型的Python快速排序算法实现如下: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] middle = [x for x in arr if x == pivot] ...

    python实现快速排序和冒泡排序比较

    通过Python实现快速排序和冒泡排序,并进行时间比较,不仅可以加深对这两种基本排序算法的理解,还可以在实践中应用和优化这些算法,以适应不同的数据处理需求。这样的编程实践对于提高编程技能和理解算法本质具有...

    通过python实现快速排序代码示例.zip

    在Python中实现快速排序的代码示例通常包括几个关键部分:定义分区函数,选择基准数,以及递归调用函数进行排序。分区函数是快速排序的核心,它负责确定基准数并将数组分为两个子数组;选择基准数可以通过多种策略,...

    Python版本快速排序源代码

    附件是Python版本快速排序源代码,文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流!

    基于python的快速排序算法设计与实现

    基于python的快速排序算法设计与实现

    python实现快速排序的几种方法.docx

    ### Python实现快速排序的几种方法 #### 快速排序算法简介 快速排序是一种非常高效的排序算法,采用分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。该算法的基本思想是:选择一个基准...

    插入排序.py python实现的排序

    插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入排序.py python实现的排序插入...

    python快速排序.docx

    Python 快速排序算法详解 在计算机科学中,排序算法是一种基本的算法,用于对数据进行排序。快速排序是一种高效的排序算法,它的平均时间复杂度为 O(n log n),在实际应用中被广泛使用。本文将详细介绍 Python 实现...

    快速排序 --- 非递归实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按...

    python-十大排序算法之快速排序

    python python_十大排序算法之快速排序

    Python实现快速排序的方法详解

    本文实例讲述了Python实现快速排序的方法。分享给大家供大家参考,具体如下: 说起快排的Python实现,首先谈一下,快速排序的思路: 1、取一个参考值放到列表中间,初次排序后,让左侧的值都比他小,右侧的值,都比...

Global site tag (gtag.js) - Google Analytics