qsort原理和实现

来源:互联网 发布:万德数据外汇数据 编辑:程序博客网 时间:2024/06/08 09:13
#include <iostream>#include <stdlib.h>#include <ctime>using namespace std;// 确定快速排序中间值那个位置,用来进行比较// 左边的值 < 右边的值int prtition(int *A, int p, int r){    int i,j,x;    x = A[r];    i= p-1;    for(j=p; j<r; j++)    {        if(A[j] <= x)        {            i++;            swap<int>(A[i], A[j]);        }    }    swap<int>(A[i+1], A[r]);    return i+1;}// 快速排序算法, 递归void quicksort(int *A, int p, int r){    if(p >= r)        return ;    int q = prtition(A,p,r);    quicksort(A,p,q-1);    quicksort(A,q+1,r);}// 排序后结果显示void show(int *A, int p,int r){    for(int i=p; i<=r; i++)        cout << A[i] << " ";    cout << endl;}int main(){    int i;    int A[10];    srand((unsigned int)time(NULL));    for(i=0; i<10; i++)        A[i] = rand() % 20;    Show(A,0,9);    quicksort(A,0,9);    Show(A,0,9);    system("pause");    return 0;}
0 0
原创粉丝点击