【发布时间】:2013-06-16 08:42:51
【问题描述】:
我有一份学生名单,我想按姓氏对他们进行排序。 学生名单看起来有点像这样:
Amanda
Dorris
Tucker
Yasmin
Zara
我想用二分法搜索这些学生,输出想要的结果。
这是我目前所拥有的:
public void binarySearch(String keyword) {
int output;
if (fileSorted == false) {
System.out.println("The file " + fileName + " is not sorted. Please wait while it gets sorted...");
bubbleSort();
System.out.println("Thank you for your patience.");
System.out.println();
System.out.print("Search for: ");
keyword = elmo.nextLine();
output = doBinarySearch(keyword);
} else {
output = doBinarySearch(keyword);
}
System.out.println(output);
}
public int doBinarySearch(String keyword) {
int start = 0;
int end = numStudents - 1;
int mid;
int result;
while (start < end) {
mid = start + (end - start) / 2;
result = students[mid].returnLastName().compareToIgnoreCase(keyword);
if (result == 0) {
return mid;
} else if ((end - start) <= 1 ) {
return -1;
} else if (result > 0) {
start = mid;
} else if (result < 0) {
end = mid;
}
}
return -1;
}
【问题讨论】:
-
会发生什么不符合您的预期?换句话说,具体是什么问题?
-
System.out.println(输出);不给我输出。程序死了:(
-
“程序死了”是什么意思?通常,您会收到包含有价值信息的异常消息。请张贴。
-
有错误的堆栈跟踪会很有用
-
输入关键字后,程序没有回复...
标签: java binary binary-tree binary-search-tree binary-search