算法导论之快速排序

Posted 风影流痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法导论之快速排序相关的知识,希望对你有一定的参考价值。

快速排序

算法原理

通过遍历数据,将其(标记)分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再对这两部分数据分别进行上述操作,整个排序过程可以递归进行,直到所有数据有序排列。

算法实现

 
   
   
 
  1. def quick_sort(x, start, end):

  2.    if start >= end:

  3.        return

  4.    i = start

  5.    j = end

  6.    key = x[start]

  7.    while i < j:

  8.        while i < j and x[j] >= key:

  9.            j -= 1

  10.        x[i] = x[j]

  11.        while i < j and x[i] <= key:

  12.            i += 1

  13.        x[j] = x[i]

  14.    x[i] = key

  15.    quick_sort(x, start, i-1)

  16.    quick_sort(x, i+1, end)

运行实例

输入:

 
   
   
 
  1. x = [13, 18, 87, 73, 95, 31, 96, 82, 49, 30]

  2. quick_sort(x)

  3. print(x)

输出:

 
   
   
 
  1. [13, 18, 30, 31, 49, 73, 82, 87, 95, 96]


以上是关于算法导论之快速排序的主要内容,如果未能解决你的问题,请参考以下文章

算法导论之快速排序

算法导论之所有排序算法的Python实现

算法导论第七章快速排序

重读算法导论之算法基础

《算法导论》读书笔记

算法导论习题—堆排序快速排序