码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序

时间:2015-03-08 17:15:35      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:快速排序   排序   算法   quicksort   sort   

快速排序是冒泡排序(http://blog.csdn.net/chfe007/article/details/44133349)的改进算法,本文选择第一个元素作为轴值,从小到达排序。

快速排序算法的一趟排序如下:

int Partion (int data[], int first, int end) {
    int i = first, j = end;
    int privot = data[i];
    while (i < j) {
        while (i < j && data[j] > privot) --j;
        data[i] = data[j];
        while (i < j && data[i] < privot) ++i;
        data[j] = data[i];
    }
    data[i] = privot;
    return i;
}

完成快速排序算法的功能函数如下:

void QSort (int data[], int start, int end) {
    while (start < end) {
        int mid = Partion(data, start, end);
        QSort (data, start, mid - 1);
        QSort (data, mid + 1, end);
    }
}

调用快速算法就很简单了:

void QuickSort (int data[], int n) {
    QSort(data, 1, n);
}

快速排序

标签:快速排序   排序   算法   quicksort   sort   

原文地址:http://blog.csdn.net/chfe007/article/details/44133859

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