java - 我的快速排序实现没有正确排序
问题描述
我一直在环顾四周,但我的困惑仍然存在。我改变了一些人们在这里建议的东西,但这只会让代码变得更糟。
我将此列表用作测试 int [] testing = {5, 2, 9, 6, 1, 7, 8, 10, 4, 12, 3, 13, 11};
,结果我得到 < 1 2 3 5 4 6 7 8 10 9 11 12 13 >。(我把错误加粗了)
我的主要快速排序方法。
public static void quickieSorty(int[] array, int start, int end) {
int pivot;
pivot = originalPivot(array, start, end);
if (start < end)
{
pivot = originalPivot(array, start, end);
quickieSorty(array, start, pivot - 1);
quickieSorty(array, pivot + 1, end);
}
}
分区(这是我在 for 循环中更改了一些内容,但这只会使列表的排序更少)。
private static int originalPivot (int[] array, int start, int end) {
int pivotValue;
int endOfList;
int mid;
mid = (start + end) / 2;
swap(array, start, mid);
pivotValue = array[start];
endOfList = start;
for (int i = start + 1; i <= end; i++)
{
if (array[i] < pivotValue)
{
endOfList++;
swap(array, endOfList, i);
}
}
swap(array, start, endOfList);
return endOfList;
}
Swap 是通用交换代码
private static void swap (int[] array, int a, int b) {
int temp;
temp = array[a];
array[a] = array[b];
array[b] = temp;
}
我用我的教科书叫了一个助手,但他们告诉我他们不确定。欢迎任何帮助,提前感谢您的时间和帮助!
解决方案
推荐阅读
- algorithm - 找到最大化独特词的句子子集
- sql - 如何在 Postgres 中使用包含正则表达式的整个 *column*?
- encoding - 哪种可打印纸质数据存储格式的信息容量最大?
- haskell - Haskell - 解决给定类型约束的类型错误
- generics - 从 Rust 中的 Trait 函数构造泛型 Struct
- python - python Packaging and distributing projects
- python - 将两个函数合并为一个函数
- asp.net - 找不到指定的网页版本“3.0.0.0”。更新您的 web.config 以指定不同的版本。当前版本:“2.0.0.0”
- python - Pandas 优先合并列
- node.js - “Mongo 错误:身份验证失败”无法从 MongoDB Atlas 读取数据