二分查找非递归算法实现

本算法用来进行二分查找的非递归实现

/**
	 * 二分查找的非递归实现
	 * 
	 * @param arr    带查找的数组
	 * @param target 需要查找的数
	 * @return 返回对应下标,-1表示没有找到
	 */
	public static int binarySearch(int[] arr, int target) {
		int left = 0;
		int right = arr.length - 1;
		while (left <= right) {
			int mid = (left + right) / 2;
			if (arr[mid] == target) {
				return mid;
			} else if (arr[mid] > target) {
				right = mid - 1;
			} else {
				left = mid + 1;
			}
		}
		return -1;
	}
posted @ 2021-06-08 08:42  shanaprprpr  阅读(72)  评论(0)    收藏  举报