数组---二分查找

xiaoxiao2021-02-28  125

二分查找,又称折半查找注意:二分查找的数组必须是有序的思路: 1)定义最大索引和最小索引 2)计算出中间索引: 如果要查的元素和中间索引对应的元素相等,返回中间索引 如果不相等:大了,左边找;小了,右边找 3)重写计算出中间索引: 大了:max = mid -1 ; 小了:min = mid+1 ; 4)继续回到2)进行重新计算在查找 public class Demo3 { public static void main(String[] args) { //静态初始化一个数组 int[] arr = {10,20,30,40,50}; Scanner sc = new Scanner(System.in); System.out.println("请输入要查找的值:"); int a = sc.nextInt(); //定义最大最小索引 int max = arr.length-1; int min = 0; //计算中间索引 int mid = (max+min)/2; while(arr[mid] != a){ if(arr[mid] > a){ max = mid-1; }else{ min = mid+1; } if(max < min){ System.out.println("没有这个数"); break; } mid = (max+min)/2; } System.out.println("这个数的索引为:"+mid); } } 结果: 请输入要查找的值: 20 这个数的索引为:1
转载请注明原文地址: https://www.6miu.com/read-38506.html

最新回复(0)