您的位置:首页 > 其它

快速排序

2008-11-06 17:16 169 查看
今天看《数据结构》(C#版)的时候,看了一个他的快速排序,但是实际遍了一下总是有问题。最后终于发现了是哪里出了问题。代码如下:

private static void quicksort(ref List<int> sqList3, int low, int high) //OK了!!!~~~:)

{

int i = low;

int j = high;

int tem = sqList3[low];

while (low < high)

{

while ((low < high) && (sqList3[high] >= tem))

{

high--;

}

if (low == high) break; //这句话是我加的

sqList3[low] = sqList3[high];

low++;

while ((low < high) && (sqList3[low] <= tem))

{

low++;

}

if (low == high) break; //这句话是我加的

sqList3[high] = sqList3[low];

high--;

}

sqList3[low] = tem;

if (i < low - 1)

quicksort(ref sqList3, i, low - 1);

if (low + 1 < j)

quicksort(ref sqList3, low + 1, j);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: