数组-采用二叉查找算法

public class ArrayFinder {
  public static void print(int[] array,int middle){
	  for (int i = 0; i < array.length; i++) {
		System.out.println(array[i]);
		if(i==middle)System.out.print("*");
		System.out.print("");
	}
	  System.out.println();
  }
  //采用二叉查找算法
  public static int indexOf(int[] array,int value){
	  int low=0;
	  int high=array.length-1;
	  int middle;
	  
	  while(low<=high){
		  middle=(low+high)/2;  //计算中间元素的索引
		  print(array,middle);  //打印数组,用于跟踪查找过程
		  if(array[middle]==value)return middle;
		  
		  if(value<array[middle])
			  high=middle-1;
		  else
			  low=middle+1;
	  }
	  return -1;  //没有找到该元素返回-1
  }
  public static void main(String[] args) {
	int[] array={4,5,6,7,9,13,17};
	System.out.println("location of 13:"+indexOf(array, 13));
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值