快速排序
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);
}
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);
}
相关文章推荐
- qsort快速排序
- 快速排序(c++代码)
- 漫步IOS--部分排序一:冒泡排序、选择排序和快速排序
- 快速排序及分析
- 快速排序
- 快速排序之Java
- [C++]LeetCode: 127 Sort Colors (计数排序 & 快速排序)
- 再次学习快速排序(C语言)
- 【Jason's_Knowledge】算法竞赛中的快速排序及其应用
- 复习数据结构:排序算法(五)——快速排序的各种版本
- 快速排序
- 【javac添加python 列表特性11】利用修改后的javac实现快速排序
- 排序算法之 快速排序 及其时间复杂度和空间复杂度
- 快速排序(一)
- 冒泡排序和快速排序(Object-C)
- 快速排序(1)基本算法实现
- GOLANG版的冒泡排序和快速排序分享
- 快速排序
- 数据结构--排序之快速排序(分治,递归)
- 快速排序