二分法查找

本文详细介绍了二分查找算法的工作原理,包括其在有序数组中的应用,以及如何通过递归和迭代实现该算法。同时,还探讨了二分查找的时间复杂度和优化策略,帮助读者掌握这一高效的搜索技术。
摘要由CSDN通过智能技术生成
在有序数组中,查找目标值所在的位置
 
[7, 40, 74, 76, 76, 78, 79, 93, 97, 98]
 
76
 
项目:day0504_二分法查找
类:day0504.Test1
 
package day0504;
 
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
 
public class Test1 {
   public static void main(String[] args) {
      //随机产生一个乱序数组
      int[] a = suiJi();
      //对数组a排序
      //基本类型数组,采用优化的快速排序算法
      Arrays.sort(a);
      System.out.println(Arrays.toString(a));
      System.out.print("查找的目标值:");
      int t = new Scanner(System.in).nextInt();
     
      //在有序数组a中,查找目标值t的位置
      //如果找不到,返回负数无意义值
      int index = binarySearch(a, t);
     
      if(index >= 0) {
         System.out.println("下标位置:"+index);
      } else {
         System.out.println("目标值不存在");
      }
   }
 
   private static int[] suiJi() {
      //产生一个5+ [0,6)范围的随机整数
      //存到变量 n
      int n = 5+ new Random().nextInt(6);
     
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值