快速排序问题c++
Quick sort issue c++
所以我正在研究排序算法,并有一个选择排序,但我的快速排序似乎有问题,我不知道如何解决它
void SortingCompetition::quicksort(int low, int high)
{
if (high!=low&& high>low)
{
int one=hash[low];
int two=hash[high];
int three = hash[high/2];
if((one<=two&&one>three)||(one<=three&&one>two))
{
swap(hash[low], hash[high]);
swap(copyOfWords[low], copyOfWords[high]);
}
else if((two<=one&&two>three)||(two<=three&&two>one))
{
swap(hash[high/2], hash[high]);
swap(copyOfWords[high/2], copyOfWords[high]);
}
else
{
}
int i=low;
int j=high-1;
while(i!=j||i<j)
{
while(hash[i]>=hash[high]&&i<j)
{
i++;
}
while(hash[j]<=hash[high]&&i<j)
{
j--;
}
if(i==j||i>j)
{
}
else
{
swap(hash[i],hash[j]);
swap(copyOfWords[i],copyOfWords[j]);
}
}
swap(hash[j],hash[high]);
swap(copyOfWords[j], copyOfWords[high]);
quicksort(low, j-1);
quicksort(j+1,high);
}
}
我认为我的掉期有问题,但我不确定。
提前谢谢。
如果希望结果从最低到最高,请更改
while(hash[i]>=hash[high]&&i<j)
{
i++;
}
while(hash[j]<=hash[high]&&i<j)
{
j--;
}
至
while(hash[i]<=hash[high]&&i<j)
{
i++;
}
while(hash[j]>=hash[high]&&i<j)
{
j--;
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题