二分查找
2015-09-03 16:42
429 查看
import java.util.Arrays; /** * * @author GDL * @time 2015-09-03 16:39 * */ public class Search { public static void main(String[] args) { //写一个数组 int [] a={2,1,8,9,4,3,66,51,7,6,5,0}; //打印一遍 for (int i = 0; i < a.length; i++) { System.out.print(a[i]); } System.out.println(""); //排序 Arrays.sort(a); //打印排序后一遍 for (int i = 0; i < a.length; i++) { System.out.print(a[i]); } System.out.println(""); //显示位置 System.out.println(searchMethod1(a, 51)); System.out.println(searchMethod2(a, 51, 0, a.length-1)); } //普通二分查找 static int searchMethod1(int [] a,int n) { int left=0; int right=a.length-1; int mid=(left+right)/2; while (left<=right) { mid=(left+right)/2; if(n==a[mid]){ return mid; }else if(n<a[mid]){ right=mid-1; }else{ left=mid+1; } } return -1; } //递归二分查找 static int searchMethod2(int [] a,int n,int left,int right) { int mid=(left+right)/2; if(n<a[left]||n>a[right]||left>right){ return -1; } if(n<a[mid]){ return searchMethod2(a, n, left, mid-1); } else if(n>a[mid]){ return searchMethod2(a, n, mid+1, right); }else{ return mid; } } }
相关文章推荐
- Matlab界面设计入门
- for 语句头中多个定义
- 替换空格
- 数据结构 1____概论
- PAT(B) 1021. 个位数统计(简单哈希)
- 使用极光推送自定义消息打造个性的消息推送效果
- C 结构体位域
- jQuery基础学习3——jQuery库冲突
- 关于C++中的友元函数的总结
- 基本数据类型与byte之间的相互转换
- HDU 2047 阿牛的EOF牛肉串 递推
- 【OpenCV第一篇】安装OpenCV
- Hello JSP!——JSP动作元素分类
- Open Data Plane (ODP) 源码下载(git 服务器搭建)
- iOS的block内存管理
- Linux I/O 进阶
- vim编辑器使用详解
- 华硕笔记本U盘启动设置
- java_对象(this和成员变量和Static修饰符)
- ICPC 6828 Help cupid(Regionals 2014 >> Latin America)