码迷,mamicode.com
首页 > 其他好文 > 详细

排序算法学习之快速排序

时间:2014-05-09 13:01:56      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

    快速排序基本思想:选取一个枢轴元素(图简单可选第一个),通过对序列一次遍历(中间涉及到数的交换),将该枢轴放置到序列合适位置,保证其左边数都比它小,右边数都比它大,然后利用递归思想对其左右两个子序列进行同样排序。

    快熟排序的基本实现过程:将枢轴元素key备份,序列头尾各设置一个游标——i和j,尾部游标j先移动(如果选择的最后一个元素为枢轴则i先移),直到遇到比key小的元素,将其移到原枢轴处覆盖之,此时j处元素空着了,然后再对i进行移动,直到遇到比key大的元素,将其移到右边下表为j的空白处

bubuko.com,布布扣
void QuickSort (int left, int right, int *array)
{
    if(left>=right)
        return ;
    int i=left, j=right;
    int key=array[i];
    while (i<j)
    {
        while (i<j && array[j]>=key)
            j--;
        array[i] = array[j];
        while (i<j && array[i]<=key)
            i++;
        array[j] = array[i];
    }
    array[i] = key;
    QuickSort(left, i-1, array);
    QuickSort(i+1, right, array);
}
bubuko.com,布布扣

 

 

 

排序算法学习之快速排序,布布扣,bubuko.com

排序算法学习之快速排序

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/lifan/p/3718466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!