java的折半查找_[Java教程]折半查找

[Java教程]折半查找

0

2017-12-06 19:00:06

小知识点,初学者易懂,备注清晰,简单明了。要求: 1. 在有序的情况下,升序和降序。 2.求某个元素在数组中的位置,如果不存在返回-1。//包名package test1111;public class Demo2 {public static void main(String[] args) {//首先是一个排好序的数组(升序或降序)int[] arr = {11,23,40,45,59,65,99};//查找 数字45int index = getIndex(arr, 65);//获得查到的数字下标值System.out.println("index="+index);//index=5}public static int getIndex(int[] arr,int key){int minIndex = 0;//最小下标int maxIndex = arr.length-1;//最大下标int midIndex = (maxIndex + minIndex)/2;//中间下标while(key != arr[midIndex]){//当中间值和key不等的时候进入循环重新获得一组数字if(key > arr[midIndex]){//key大于中间值,获得新值最小下标等于中间下标+1minIndex = midIndex + 1;}else{//key小于中间值,获得最大下标等于中间下标-1maxIndex = midIndex - 1;}if(maxIndex < minIndex){//最大下标小于最小下标 证明值不存在return -1;//若果不存在返回-1}//新的一组数字的中间下标midIndex = (maxIndex + minIndex)/2;}return midIndex;//始终返回的都是数组中间那个数的下标}}

本文网址:http://www.shaoqun.com/a/338946.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值