package com.raylew.algorithm.book1;
public class 折半查找 {
public static void main(String[] args) {
int[] arr = {1, 6, 3, 7, 9, 8, 4, 0, 5, 2};
insert(arr);
System.out.println(search(9, arr));
}
//插入排序
public static void insert(int[] arr) {
if (arr != null) {
for (int i = 1; i < arr.length; i++) {
int temp = arr[i], j = i;
if (arr[j - 1] > temp) {
while (j >= 1 && arr[j - 1] > temp) {
arr[j] = arr[j - 1];
j--;
}
}
arr[j] = temp;
}
} else {
System.out.print("array hasn't been initialized!");
}
}
public static int search(int num, int[] arr) {
int left = 0, right = arr.length - 1;
int mid = 0;
while (left <= right) {
mid = (left + right) / 2;
if (num > arr[mid]) {
left = mid + 1;
} else if (num < arr[mid]) {
right = mid - 1;
} else {
return mid;
}
}
return -(left + 1);
}
}