이진 검색을 사용하여 요소를 배치 할 배열 인덱스를 찾고 싶습니다. 큰 요소를 아래로 이동하면서 요소를 배열에 삽입하기위한 것입니다. 발견되지 않은 요소를 배치해야하는 위치를 지정하기 위해이 2 진 검색을 어떻게 수정할 수 있습니까?요소를 찾을 수없는 이진 검색의 경우 삽입해야하는 인덱스를 반환하는 방법
int binarySearch(int arr[], int x) {
int low = 0;
int mid = 0;
int high = arr.length - 1;
while (low <= high) {
mid = (low + high)/2;
if (x < arr[mid]) {
high = mid - 1;
} else if (x > arr[mid]) {
low = mid + 1;
} else {
return mid;
}
}
//This is what im trying to get to work
if (x < arr[mid]) {
return high;
} else {
return low;
}
}
감사합니다.
그리고'- (x + 1) = ~ x = -x -1', 그냥 참고하시기 바랍니다 :) – harold
@harold - slick! –