经典算法之快速排序

来源:互联网 发布:搜索引擎优化的优缺点 编辑:程序博客网 时间:2024/05/01 21:54

说明:

    快速排序是目前公认最快的排序方法之一。大部分情况都表现得很好,但当必须考虑最坏情况时,快速排序不可接受,因为时间达到O(n2)。

 

思路:

    快速排序的基本思想是在数列中找出适当的轴心,将数列分成左右两部分(左半部分的元素都小于右半部分的元素),然后分别对两部分进行排序(重覆选择轴心,划分左右部分的过程)。

    以中间元素为轴(用p表示)进行处理的步骤:

    1、 令索引i从左向右找,直到找到大于p的数。

    2、 令索引j从右向左找,直到找到小于p的数。

    3、 如果i>=j,跳到第五步。

    4、 否则,交换i、j两处元素的值。

    5、 对左边重覆上面的步骤。

    6、 对右边重覆上面的步骤。

 

    注意:轴心的选择对快速排序的效率有影响,但以中间元素为轴心的算法较容易理解。

 

核心代码:

 

 


全部代码:


原创粉丝点击