【发布时间】:2019-06-01 09:12:07
【问题描述】:
完整的Java新手所以请原谅任何愚蠢的错误。我正在处理一项更大的任务,但一直坚持使用快速排序方法,尽管在过去的几个小时里一直在玩它并且看着它直到我几乎失明,我似乎无法弄清楚我在哪里出错了。
我收到一条错误消息“错误:类 testmenu01 中的方法 QuicksortString 不能应用于给定类型”。我知道这与我传递参数的方式有关,但我已经尝试并重试了,但找不到我的错误。我敢肯定它的一些愚蠢和明显的东西,但找不到它。非常感谢任何帮助,谢谢!
public class testmenu01 {
public static void main(String[] args){
String[] nameArr = {"Anna", "Brad", "Charles", "Debbie", "Emma", "Fergal"};
QuicksortString( nameArr );
}
public void QuicksortString(String [] stringArray, int start, int end) {
int i = start;
int k = end;
if (end - start >= 1) {
String pivot = stringArray[start];
while (k > i) {
while (stringArray[i].compareTo(pivot) <= 0 && i <= end && k > i)
i++;
while (stringArray[k].compareTo(pivot) > 0 && k >= start && k >= i)
k--;
if (k > i)
swap(stringArray, i, k);
}
swap(stringArray, start, k);
QuicksortString(stringArray, start, k - 1);
QuicksortString(stringArray, k + 1, end);
} else { return; }
}
public void swap(String array[], int index1, int index2) {
String temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
}
【问题讨论】:
-
QuicksortString方法说“给我三个参数”,第一个是字符串数组,第二个是开始 (int),第三个是结束 (int)。到目前为止,您只传递了字符串数组。此外,它必须是static才能在main方法中调用,否则您需要创建一个实例然后调用该方法。 -
顺便说一句,请确保您遵守标准的 Java 命名约定:方法名称必须以小写字母开头。以大写开头的名称只能用于类型(类、接口、枚举)。
-
cmets 中的一些好技巧。另一个提示:使用带有(例如)语法高亮的 IDE/编辑器会很有帮助。这类错误通常会被清楚地标记出来。
标签: java arrays string quicksort