Java基础算法,搜索数据位置

匆匆过客 提交于 2020-03-03 19:26:23

在这里插入图片描述

分析:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。可以根据二分法查找进行解题

public static int search(int arr[], int find) {
		//声明变量存数组最小索引和最大索引及中间索引(二分法)
		int max = arr.length - 1;
		int min = 0;
		int mid = (max + min)/2;
		while (min <= max) {
			if (find > arr[mid]) {//如果要找的数大于中间索引
				min = mid + 1;
				mid=(min+max)/2;
			} else if(find < arr[mid]) {//如果要找的数小于中间索引
				max = mid - 1;
				mid=(min+max)/2;
			} else {
				return mid;//找到了目标下标
			}
		}
		return min;//没找到则返回其位置最小的下标,即为它按顺序插入的位置
	}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!