二分查找
2016-04-13 16:18
309 查看
package cn.zhuang.Search; public class BinarySearch { /* * 用递归方式二分查找 */ public static int searchRecursive(int[] data , int from, int end , int target){ int middle; if(from > end){ return Integer.MAX_VALUE; } middle = (from+end)/2; if(data[middle] == target){ return middle; }else if(data[middle] < target){ return searchRecursive(data, middle + 1, end, target); }else{ return searchRecursive(data, from, middle - 1, target); } } /* * 用循环方式查找 */ public static int searchLoop(int[] data,int target){ int start = 0; int end = data.length - 1; while(start<end){ int middle = (start + end)>>1;//相当于(start+end)/2 if(data[middle] == target){ return middle; } else if(data[middle] < target){ start = middle + 1; }else{ end = middle - 1; } } return Integer.MAX_VALUE;//找不到 } }
相关文章推荐
- linux用户态和内核态理解
- iOS中的AlterViewController的一些总结
- cocos2d 安卓编译 cpp Android.mk
- ACM算法分类
- LeetCode Algorithms #102 <Binary Tree Level Order Traversal>
- linux 常用命令
- 最新最全的html5标签集合
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- css小记(3)
- 自旋锁Spin lock与互斥锁Mutex的区别
- html网页使用单引号双引号 转义符
- 遍历窗体控件,设置FontName
- 一、go语言基础流程控制,语法,反射特性--go语言笔记
- 欢迎使用CSDN-markdown编辑器
- JSP中为何内置对象——JSP中九个内置对象使用总结
- Oracle定义DES加密解密及MD5加密函数示例
- 《编程之美 》2.1 位运算实现—交换两个整数、求和、整数的二进制表达中1的个数
- Java学习之路1--hello world
- 详细的css命名规则,专业点吧
- android 三目运算符 运用错误