欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用二分法查找指定数字在数组中的位置

最编程 2024-07-07 09:34:57
...

利用二分法查找指定的数在数组中的位置

//找到指定的数,返回该数在数组内的位置,否则返回-1
public class DiGuiXieErFenFa {
	public static void main(String[] args) {
		int element = 0;
		int[] arr = new int[]{1,3,4,6,9,13,56,76};
		//数组内部可以是任何形式如String[]
		System.out.println(m(arr,0,arr.length-1,element));
		//System.out.println(searchValue(arr, 0, arr.length-1, element));
	}
	//递归写二分查找
	//定义方法searchValue,传入指定的数组,开始下表,结束下表,以及目标元素
	public static int searchValue(int[] arr, int start, int end, int element) {
		int res = -1;
		if (end<start) {
			return -1;
		}
		if (start <= end) {
			int middle = (start + end) / 2;
			int middleVaule = arr[middle];
			if (middleVaule == element) {
				return middle;
			} else if (middleVaule > element) {
				return searchValue(arr, start, middle - 1, element);
			} else {
				return searchValue(arr, middle + 1, end, element);
			}
		}
		return res;
		}
	}

推荐阅读