二分查找非递归算法实现

Posted shanaprprpr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找非递归算法实现相关的知识,希望对你有一定的参考价值。

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

/**
	 * 二分查找的非递归实现
	 * 
	 * @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;
	}

以上是关于二分查找非递归算法实现的主要内容,如果未能解决你的问题,请参考以下文章

Day589.二分查找(非递归) -数据结构和算法Java

JavaScript实现二分查找(搜索)算法(非递归实现)

C/C++ 二分查找算法(非递归实现)

图解二分查找的递归和非递归实现

二分查找的递归和非递归写法

二分查找算法(递归与非递归两种方式)