Java基础-----二分查找

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84721147

如果数组是无序的不能使用二分查找。

package StringBufferPackage;

public class Demo8_getIndex {
	public static void main(String[] args) {
		int[] arr = {11,22,33,44,55,66,77};
		System.out.println(getIndex(arr,55));
	}

	private static int getIndex(int[] arr, int value) {
		int min = 0;
		int max = arr.length - 1;
		int mid = (min + max) / 2;
		
		while(arr[mid] != value) {
			if(arr[mid] > value) {
				max = mid - 1;
			} else if (arr[mid] < value) {
				min = mid + 1;
			}
			
			mid = (min + max) / 2;
			
			if (min > max) {
				return 0;
			}
		}
		return mid;
	}
}

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84721147