【发布时间】:2019-08-20 15:10:39
【问题描述】:
我的导师建议我应该在 stackover flow 上发布我的问题,因为这不是我的教授所涵盖的内容(他将涵盖它)。仍然是一个档次。我了解快速排序,我的程序的其余部分都可以工作,但无论我尝试什么,我的快速排序都无法正常工作。
这个作业是为了让我们自己练习使用泛型。我们的教授没有教我们怎么做;他希望我们学习。我尝试过:CompareTo, 的循环操作数。尝试阅读教科书,但没有找到解决我问题的方法。我也尝试与我的项目合作伙伴合作,但他们放弃了课程并拒绝帮助我。它仍然是一个等级,所以我自己完成它。我只是发布代码的相关部分
public static <E extends Comparable> int partition(E[] list,int low, int high) {
E pivot = list[low];
int i = low - 1;
int j = high + 1;
while (i < j)
{
for (i++; (int) list[i] < pivot i++);
for (j--; (int) list[j] > pivot; j--);
if (i < j)
swap(i, j);
}
return j;
}
}
输出应该从驱动程序产生一个排序列表。
【问题讨论】:
-
;终止您的循环体,因此您有两个空的 for 循环,然后在while中有一个if。另外,你为什么要比较i和j?你付钱给你的导师吗? -
您好,欢迎您!首先,“这个作业是为了让我们自己练习使用泛型。”似乎从导师那里获得建议,在小组中工作并在 StackOverflow 上发帖违背了作业的目的。无论如何,您遇到的实际问题是什么? “它不会起作用”并不是一个明确的问题陈述。
-
这是我的各个雇主都使用过的 Java 代码样式指南:可选大括号不是可选的。也就是说,你不会说 if (condition) blah。你会说 if (condition) { blah }。虽然该语言允许代码块使用单行(if、for、while 等),而且排除大括号也不会那么草率,但它会让您看到一大类编程错误,这些错误可能很微妙。因此,我们不会将可选大括号视为可选,因此我们不会遇到那些奇怪的错误类别。
-
你了解递归了吗?我尝试查找可以使用的好教程,但它们似乎都使用递归。
-
我自己学了一点递归。我想我明白了。
标签: java arraylist casting quicksort