概述:二分查找法又称折半查找法,是一种效率较高的查找方式,但,二分查找法要求数组必须采用顺序存储结构有序排列。
下面是相关代码:
public class Demo1 {
public static void main(String[] args) {
int nums[] = {0,5,25,35,45,55,65,75};
// 1.--要查找的数据
int num = 25;
// 2.--用二分法进行查找
//定义三个关键变量
//最大范围下标
int maxIndex = nums.length-1;
//最小范围下标
int minIndex = 0;
//中间下标
int centerIndex = (maxIndex+minIndex)/2;
while (true){
if(nums[centerIndex] > num){
//当中间数据较大时
maxIndex = centerIndex-1;
}else if(nums[centerIndex] < num){
//当中间数据较小时
minIndex = centerIndex+1;
}else break;
//找不到数据
if (minIndex > maxIndex){
centerIndex = -1;
break;
}
//当边界更新时需要更新中间要素
centerIndex = (maxIndex+minIndex)/2;
}
System.out.println("您要查找的数在第"+(centerIndex+1)+"位");
}
}
提示:
①核心就是三个 Index 的移动
比如:怎么移动的,怎么判断,需要判断的要素有哪些,以及三者之间的关系是怎样的
其他的都比较简单了
优化 也可以用到“ IO流 ”来让此程序更灵活