二分查找
来源:互联网 发布:占领中环 知乎 编辑:程序博客网 时间:2024/06/06 12:36
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; } }}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 替换空格
- HDU 4274 - Spy's Work(树形DP)
- 第2周项目0-宣告“主权” 初识数据结构
- Android 使用极光推送自定义消息打造个性的消息推送效果
- 滑动窗口_单调队列入门 (白书P241)
- 二分查找
- 电话本管理系统(使用数组)
- Hello JSP!——<jsp:include>动作元素篇
- 问题记录
- LeetCode Delete Node in a Linked List
- JDK5至JDK8的新特性
- 正则表达式炼级攻略
- Spring mvc的相关问题
- 迭代器模式(一):销售管理系统中数据的遍历