二分查找
Posted stAr_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。
直接上代码
/** * 二分查找应用的两个条件: * 1.数据的存储必须是顺序存储结构,也就是带下标的,例如array和list * 2.数据必须有规律可循,例如已经按大小排序好 */ public class BinarySearch { //迭代实现,这里假设数据按照从小到大的顺序排列好 public void binarySearch1(int[] a,int target) { int sta = 0; int end = a.length -1; int mid = -1; while(sta < end) { mid = (sta + end)/2; if(a[mid] > target) end = mid - 1; else sta = mid + 1; } if (mid == -1) System.out.println("数据没找到"); System.out.println(mid); } //递归实现 public void binarySearch2(int[] a ,int target,int sta,int end) { if(sta > end) { System.out.println("数据没找到"); return ; } int mid = (sta + end)/2; if (a[mid] >target) binarySearch2(a,target,sta,mid-1); else if (a[mid] < target) binarySearch2(a,target,mid+1,end); else System.out.println(mid); } }
以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章