二分法查找--折半检索详解

二分查找

算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

代码实现:

/**
 * 二分法查找
 * @author liujunwei1016
 *
 */
public class TestBinarySearch {

	public static void main(String[] args) {
		int[] arr = {7, 15, 78, 5, 99, 52,24,19,33,46};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		System.out.println(myBinarySearch(arr, 36));
	}
	public static int myBinarySearch(int[] arr, int value) {
		int low =0;
		int high = arr.length-1;
		while(low<=high) {
			int mid = (low+high)/2;
			if(value == arr[mid]) {
				return mid;
			}
			if(value > arr[mid]) {
				low = mid +1;
			}
			if(value < arr[mid]) {
				high = mid -1;
			}
		}
		return -1;
	}
}

你可能感兴趣的:(java)