2023-07-31 23:27阅读: 6评论: 0推荐: 0

二分查找

二分查找

前提:有序
思路:
mid = (left + right) / 2
若 mid = value , 输出 mid 下标
若 mid < value , mid = left + 1
若 mid > value , mid = right - 1

public class Test2 {
@Test
public void test1() {
int[] arr = {-99,-54,-2,0,0,2,33,43,256,999};
int left = 0;
int right = arr.length - 1;
int value = -99;
//value 对应的索引
int index = -1;
while (left <= right) {
int mid = (left + right) / 2;
if (value == arr[mid]){
index = mid;
break;
} else if (value < arr[mid]) {
right = mid - 1;
}else if (value > arr[mid]) {
left = mid + 1;
}
}
if (index == -1){
System.out.println("没有");
}else {
System.out.println("索引为:" + index);
}
}
}

本文作者:九落

本文链接:https://www.cnblogs.com/9fall/p/17595308.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   九落  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.