二分查找算法

(1)二分查找(Binary Search),也就折半查找,其查找过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。

(2)折半查找过程是以处于区间中间位置记录的关键字与给定值比较,若相等,则查找成功,如不相等,则缩小范围,直到新的区间的中间记录的关键字等于给定值或者查找区间的大小小于零时(表示查找不成功)为止。

(3)java实现的代码如下:

public class BinarySearchTest
{
	public static int binarySearch(int[] array, int value)
	{
		int low = 0;
		int high = array.length - 1;
		int mid;

		while(low <= high)
		{
			mid = (low + high) / 2;
			if(array[mid] == value)
			{
				return mid;
			}
			else if(array[mid] > value)
			{
				high = mid - 1;
			}
			else
			{
				low = mid + 1;
			}
		}

		return -1;
	}

	public static void main(String[] args)
	{
		int[] array = new int[] {5, 13, 19, 21, 37, 56, 64, 75, 80, 88, 92};
		int index = binarySearch(array, 21);
		System.out.println(index);
	}	
}


你可能感兴趣的:(二分查找算法)