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

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

 二分查找(折半查找)

 [要求] 1. 必须采用顺序存储结构; 2.必须按关键字大小有序排列。

/**     * 折半查找     * @param arr     * @param searchValue     * @return     */    public static int binarySearch(int[] arr, int searchValue) {        if(arr == null) {            return -1;        }                int low = 0;        int high = arr.length -1;                while(low <= high) {            int midIndex = (low + high)/2;                        if(arr[midIndex] == searchValue) {                return midIndex;            }else if(arr[midIndex] > searchValue) {                high = midIndex - 1;            }else{                low = midIndex + 1;            }                    }                return -1;            }            /**     * 二分查找,特殊实现     * @param arr     * @param searchValue     * @param first     * @param last     * @return     */    public static int binarySearch(int[] arr, int searchValue, int first,int last) {        if(arr == null) {            return -1;        }                if(searchValue < arr[first] || searchValue > arr[last]) {            return -1;        }                int midIndex = (first+last)/2;                if(searchValue < arr[midIndex]) {            return binarySearch(arr, searchValue, first, midIndex-1);        }else if(searchValue > arr[midIndex]){            return binarySearch(arr, searchValue, midIndex + 1, last);        }else {            return midIndex;        }            }

 

转载于:https://www.cnblogs.com/qishuai/p/8659441.html

你可能感兴趣的文章
编程的方法(未完)
查看>>
.NET Core的依赖注入[1]: 控制反转
查看>>
前端JS基础知识
查看>>
Asp.NETCore轻松学系列阅读指引目录
查看>>
kubernetes系列03—kubeadm安装部署K8S集群
查看>>
Docker最全教程——从理论到实战(三)
查看>>
MySQL SYS CPU高的案例分析(一)
查看>>
【.NET Core项目实战-统一认证平台】第九章 授权篇-使用Dapper持久化IdentityServer4...
查看>>
MSSQL sql server order by 1,2 的具体含义
查看>>
LeapMotion Demo3
查看>>
C# 进制转换(二进制、十六进制、十进制互转)
查看>>
熟悉css/css3颜色属性
查看>>
删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005 ....
查看>>
一步一步写算法(之爬楼梯)
查看>>
SQL Server 多实例下的复制
查看>>
Wix打包系列(五) 部署数据库
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单...
查看>>
临时禁用Resharper
查看>>
[UML]UML系列——时序图(顺序图)sequence diagram
查看>>
EPPlus 读取 csv另存为的xlsx 文件出错
查看>>