У меня есть список учеников, и я хотел бы отсортировать их по фамилии. Список студент выглядит как это:Бинарный поиск - ошибка
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 (выход); не дает мне выход. программа умирает :( – elmer
Что означает «программа умирает»? Обычно вы получаете сообщение об исключительной ситуации с ценной информацией. – SJuan76