快速排序

来源:互联网 发布:网络棋牌游戏赚钱吗 编辑:程序博客网 时间:2024/06/06 15:48
void quickSort(int arr[], int low, int high)
{
if (low < high)
{
int left = low;
int right = high;
int x = arr[low];
while (low < high)//完成一次排序、j和i指向同一位置
{

while (low < high && arr[high]> x)// 从右向左找第一个小于x的数
{
high--;
}
if (low < high)
{
arr[low] = arr[high];
low++;
}
while (low <high && arr[low] < x)// 从左向右找第一个大于等于x的数
{
low++;
}
if (low <high)
{
arr[high] = arr[low];
high--;
}
}

arr[low] = x;
quickSort(arr, left, low - 1);// 递归调用 
quickSort(arr, low + 1, right);
}

}

参考自:http://blog.csdn.net/morewindows/article/details/6684558

http://www.cnblogs.com/luchen927/archive/2012/02/29/2368070.html

0 0