java实现查找算法——折半查找(二分查找)
2016-09-26 18:53
615 查看
折半查找算法
折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的。对于没有经过排序的,可以查阅我之前的排序算法文章进行预排序,然后进行折半查找操作。譬如数组{1,2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为:
1.第一步查找中间元素,即5,由于5<6,则6必然在5之后的数组元素中,那么就在{6, 7, 8, 9}中查找,
2.寻找{6, 7, 8, 9}的中位数,为7,7>6,则6应该在7左边的数组元素中,那么只剩下6,即找到了。
二分查找算法就是不断将数组进行对半分割,每次拿中间元素和目标数据进行比较。
代码示例如下:
public class BinarySearch { public static void main(String[] args) { int a[]={1,2,3,4,5,6,7,8}; Scanner sca=new Scanner(System.in); System.out.print("输入要查找的数据:"); int x=sca.nextInt(); int loc=binarySearch(a,a.length,x);//返回数据所在位置 System.out.print(loc); } private static int binarySearch(int[] a, int length, int x) { int left=0; int right=length-1; int mid; while(left<=right){ mid=(left+right)/2; if(a[mid]==x){ return mid; }else if(a[mid]>x){ right=mid-1; }else{ left=mid+1; } } return -1;//未找到返回-1 } }
相关文章推荐
- Java实现折半查找(二分查找)的递归和非递归算法
- Java 语言实现折半查找(二分查找)
- Java实现折半查找(二分查找)的递归和非递归算法
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- [查找算法]--二分查找的Java实现
- Java实现三种常用的查找算法(顺序查查找,折半查找,二叉排序树查找)
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- 折半查找(二分查找)Java实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现的两种常见简单查找算法示例【快速查找与二分查找】
- Java/Go实现——折半查找 二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- 算法导论Java实现-二分查找运用(习题2.3-7)
- 线性查找与二分查找(java实现)
- java实现二分查找
- 十.用C语言实现查找算法 (1)顺序查找;(2)二分查找(折半查找);(3)二叉排序树;(4)哈希查找
- 二分查找的Java实现
- JAVA实现二分查找
- 二分查找之Java实现