快速排序

来源:互联网 发布:淘宝药店 编辑:程序博客网 时间:2024/05/21 09:01

快排思想:首先选择一个数key,然后将这个数组分为两部分,一边比key大一边不比key大,然后再将这两部分接着分,直至这个部分只有一个数

代码:

void quicksort(int *num, int left, int right){    if(left>=right)    {        return;    }    int key = num[left];                                                   //以数组第一个数为标准    int l = left;    int r = right;    int j;         while(r != l)        {            for(r; num[r]<=key && r!=l; r--);                          //以第一个数为标准,首先从右边开始找比key大的数 即num[r]>key            for(l; num[l]>key  && r!=l; l++);                            //然后左边开始找不比key大的数 即num[l]<=key            j = num[r];            num[r] = num[l];            num[l] = j;                                                         //互换位置        }        quicksort(num, left, l);        quicksort(num, l+1, right);}

原创粉丝点击