数组查找之二分查找(折半查找)---带图详解+代码逐步分析!赋基本查找以及基本查找的实现代码

博客主要围绕Java数组查找展开,分析了二分查找的基本思想和实现思路,还提及基本查找,即数组元素无序时从头到尾的查找方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,直接上图,开始分析:
二分查找原理图
从上图我们不难分析出二分查找的基本思想以及实现的思路。

代码的逐步分析加实现:

public class ArrayDemo {
	public static void main(String[] args) {
		//定义一个数组
		int[] arr = {11,22,33,44,55,66,77};
		
		//写功能实现
		int index = getIndex(arr, 33);
		System.out.println("index:"+index);
		
		//加入这个元素不存在,会有什么现象呢?
		index = getIndex(arr, 333);
		System.out.println("index:"+index);
	}
	
	/*
	 * 两个明确:
	 * 
	 * 	返回值类型:int
	 * 	参数列表:int[] arr,int value
	 * 
	 * */
	public static int getIndex(int[] arr,int value) {
		//定义最小索引,最大索引
		int min = 0;
		int max = arr.length - 1;
		
		//计算出中间索引
		int mid = (max+min)/2;
		
		//拿中间索引的值和要查找的元素进行比较
		while(arr[mid] != value) {
			if(arr[mid] > value) {
				max = mid - 1;
			}else if(arr[mid] < value) {
				min = mid + 1;
			}
		
			//加入判断
			if(min > max) {
				return -1;
			}
			
			mid = (max+min)/2;
		}
		
		
		return mid;
	}
}

基本查找:
数组元素无序(从头到尾)

public static int getIndex(int[] arr,int value) {
					int index = -1;
					for(int x = 0;x < arr.length;x++) {
						if(arr[x] == value) {
							index = x;
							break;
						}
					}
					return index;
				}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值