public static int BinarySearch(int[] a, int searchValue) {
int low = 0;
int high = a.length - 1;
while (low < high) {
int mid = (low + high) / 2;
if (a[mid] == searchValue) {
return mid;
} else if (a[mid] < searchValue) {
low = mid + 1;
} else if (a[mid] > searchValue) {
high = mid - 1;
}
}
return -1;
}
Em có đọc trên mạng thì với mảng gồm n phần tử, sẽ cần log2(n) phép so sánh (operations) để tìm ra được số mình cần tìm
Nhưng ví dụ em có một mảng là các số 3 4 5 6
Muốn tìm ra số 6 rồi return lại vị trí số 6 trong mảng phải cần 3 lần so sánh chứ ạ
- 6 với 4
- 6 với 5
- 6 với chính 6 để return lại vị trí
phải đếm nữa.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?