二分搜索算法
来源:互联网 发布:mac口红代购价 编辑:程序博客网 时间:2024/04/30 06:48
一、二分搜索算法的基本思想
将n个数分成个数大致相等的两半,左、右两部分,取a[ n/2 ]与x进行比较。
如果x 和 a[ n/2 ]相等,则找到x,算法结束;
如果a[ n/2 ] > x, 则继续在左半部分搜索x;
如果a[ n/2 ] < x,则继续在右半部分搜索x;
二、二分搜索算法的java实现
public class BinarySearch {/** * 实现一 * */public static int search(int[] sortedInts, int target){int middle;int left = 0, right = sortedInts.length - 1;while(left <= right){middle = (left + right) / 2;if(sortedInts[middle] == target){return middle;}else if(sortedInts[middle] > target){right = middle - 1;}else{left = middle + 1;}}return -1;}/** * 实现二 * */public static int search(int[] sortedInts, int fromIndex, int toIndex, int target){if(fromIndex > toIndex) return -1;int middle = (fromIndex + toIndex) / 2;if(sortedInts[middle] == target){return middle;}else if(sortedInts[middle] > target){return search(sortedInts, fromIndex, middle - 1, target);}else{return search(sortedInts, middle + 1, toIndex, target);}}public static void main(String[] args){int[] ints = {1, 2, 3, 5, 6, 7};int target = 5;//int index = search(ints, 0, ints.length - 1, target);int index = search(ints, target);System.out.println("index:" + index);}}...
0 0
- 【基础算法】搜索-二分搜索
- C#二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 简单算法--二分搜索
- 二分搜索算法细节
- 研究二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 二分搜索算法
- 分治算法--二分搜索
- java二分搜索算法
- Vector::Vector的定义
- 谁拥有鲨鱼
- CentOS安装JAVA
- 一、C语言宏定义技巧
- 《 Discrete Mathematics and its Applications 》 离散数学及其应用 读书笔记 ( 三 )
- 二分搜索算法
- 第1条:考虑用静态工厂方法代替构造器
- Volley学习资源
- JMS消息服务器(二)——点对点消息传送模型
- Eclipse出现java heap space解决方法
- DuiVision开发教程(5)-事件处理类编写
- 剑指offer 56-链表中环的入口点
- 容器的相关操作
- IOS 学习笔记之C