java二分查找
2017-09-13 10:50
162 查看
package com.alo.offer; /** * 非递归的二分查找 * 适用于已经排序好的数组进行查找 * @author Administrator * */ public class BinarySearch{ public static void main(String[] args) { int []a= {1,5,9,17,56,89,123,257,368,489,578,684,784,857,942}; System.out.println(new BinarySearch().searchNoRecur(a, 9)); System.out.println(new BinarySearch().search(a, 9, 0, a.length-1)); } public int searchNoRecur(int []a,int x) { int low=0,high=a.length-1; int mid=0; while(low<=high) { mid=low+(high-low)/2; if(x==a[mid]) { return mid; }else if(x>a[mid]){ low=mid+1; }else { high=mid-1; } } return -1; } public int search(int []a,int x,int low ,int high) { if(low>high) return -1; int mid =low+(high-low)/2; if(a[mid]==x) { return mid; }else if(x>a[mid]){ return search(a,x,mid+1,high); }else { return search(a,x,low,mid-1 ); } } }
相关文章推荐
- Java 二分查找的简单使用
- Java二分查找算法学习笔记。
- 二分查找java代码实现
- leetcode解题之374. Guess Number Higher or Lower Java版 (猜数字大小二分查找)
- 【笔试】Java 二分查找(递归,非递归)
- java二分查找的实现
- java查找值二分查找和线性查找
- Java选择排序、冒泡排序、直接插入排序与二分查找
- 二分查找过程、比较次数分析、java实现
- 二分查找问题(Java版)
- java学习-二分查找
- 算法 -- Java实现二分(折半)查找(图解 + 代码实现)
- 字符串--java面试题, 首个重复字符串,二分查找
- 二分查找的java实现
- Java-线性查找和二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- Java--冒泡、选择排序,二分查找
- [算法]java实现 二分查找 斐波那契数列 静静思考
- java 二分查找计算时间复杂度
- JAVA实现冒泡排序和二分查找