博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找BinarySearch(Java)
阅读量:5313 次
发布时间:2019-06-14

本文共 1552 字,大约阅读时间需要 5 分钟。

二分查找(折半查找)BinarySearch

  二分查找 

    一组排好顺序的数,查找其中的一个数(value)的位置,按照数组(int[] a)存放这组数据,数组的索引所指的位置就是需要查找的数,用三个变量来存储数组中的第一个位置(start),最后一个位置(end)和中间位置(mid)的索引。每查找一次,就用中间位置(mid)索引所表示的数组值来与所需要查找的数(value)相比较,若中间索引处的数值(a[mid])大于需要查找的数值(value),则将查找范围放到前半部分查找(即令最后一个位置的索引移到中间索引的前一个位置【end = mid-1】),若中间索引的数组(a[mid])小于需要查找的数值(value)),则将查找范围放到后半部分查找(即令第一个位置的索引移到中间索引的后一个位置【start = mid+1】)

 

1 package cn.sxt.oo; 2  3 import java.util.Arrays; 4 import java.util.Scanner; 5  6 /** 7  * 测试二分查找 8  * @author Trista 9  *10  */11 public class BinarySearch1 {12     public static void main(String[] agrs) {13         int[] a = {12,45,98,76,56,4,5,7,1,0,13,99,66};14         Scanner sc = new Scanner(System.in);15         System.out.println("请输入要查找的数字:");16         int value = sc.nextInt();17         Arrays.sort(a);18         load(value,a);19         20         21     }22 23     public static void load(int value,int[] b) {24         int begin = 0;25         int last = b.length-1;26         boolean flag = true;    27        while(last>=begin) {28             int mid = (begin+last)/2;29                 if(value==b[mid]) {30                     flag = false;31                     System.out.println("按从小到大,该值的在数值中为第"+(mid+1)+"位");32                 }33                 if(value>b[mid]) {34                     begin = mid+1;35                 }else {36                     last =mid-1;37                 }38             }39        if(flag) {40            System.out.println("该值不存在");41        } 42     }43 }
View Code

 

 

 

转载于:https://www.cnblogs.com/Trista-ddt/p/10615438.html

你可能感兴趣的文章
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
MongoDB-CRUD
查看>>
javaagent 简介
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
web前端面试题2017
查看>>
ELMAH——可插拔错误日志工具
查看>>
MySQL学习笔记(四)
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
ul li剧中对齐
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>