public static boolean binarySearch(ArrayList<Student> students, int search) {
int first = 0;
int last = students.size() - 1;
int mid;
while (first <= last) {
mid = first + (last - first)/2;
if (search == students.getTotal(i)) {
return true;
} else if (students.compareTo(students.get(mid)) < 0) {
last = mid - 1;
} else {
first = mid + 1;
}
}
return false;
}
В этом методе я должен вернуться true
если search
найден, и если false
search
не найден.
Однако я не могу получить информацию от ArrayList
.Java ArrayList бинарный поиск (ArrayList)
Здесь две ошибки.
Один на
search == students.getTotal(i)
Другой на
students.compareTo(students.get(mid))
Для первого я должен получить доступ к students
и сравнить i
искать, но я не могу получить данные в students
.
Во второй, которую я должен получить, если поиск продолжится на стороне ВЛЕВО или ВПРАВО.
Может ли кто-нибудь дать мне какие-либо советы о том, как это решить? Я мог бы знать, что я использую неправильный способ получения данных, но мне нужно направление.
1) ArrayList не имеет метода getTotal – Darshan
У меня есть getTotal в моем классе учеников, я не могу назвать его? – POH
Возможный дубликат [Java BinarySearch] (http://stackoverflow.com/questions/12517764/java-binarysearch) –