快速排序

来源:互联网 发布:中国震撼世界知乎 编辑:程序博客网 时间:2024/06/18 14:13

http://blog.csdn.net/morewindows/article/details/6684558

必要说明:

int AdjustArray(int s[], int l, int r) //返回调整后基准数的位置{    int i = l, j = r;    int x = s[l]; //s[l]即s[i]就是第一个坑    while (i < j)    {        // 从右向左找小于x的数来填s[i]        while(i < j && s[j] >= x)             j--;     //********************看好了,这个while只管到这一行。所以是左一个坑,又一个坑,左一个坑,右一个坑的交替执行的。        if(i < j)         {            s[i] = s[j]; //将s[j]填到s[i]中,s[j]就形成了一个新的坑            i++;        }        // 从左向右找大于或等于x的数来填s[j]        while(i < j && s[i] < x)            i++;          if(i < j)         {            s[j] = s[i]; //将s[i]填到s[j]中,s[i]就形成了一个新的坑            j--;        }    }    //退出时,i等于j。将x填到这个坑中。    s[i] = x;    return i;}
0 0
原创粉丝点击