java数据结构之二分查找法 binarySearch的实例
发布时间:2020-12-14 21:21:00 所属栏目:Java 来源:网络整理
导读:java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; public void setArr(int[] bArr){ this.bArr=bArr; } public static void main(String[] args) { int arrLen
java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; public void setArr(int[] bArr){ this.bArr=bArr; } public static void main(String[] args) { int arrLength=16; int[] bArr=new int[arrLength]; System.out.println("数组:"); bArr=new int[]{72,31,13,94,85,27,64,71,19,55,49,40,8,70,17,13}; for(int i=0;i<arrLength;i++){ //bArr[i]=(int)(Math.random()*100); System.out.print(bArr[i]+" "); } System.out.println(); System.out.println("排序:"); QuickSort qs=new QuickSort(); qs.setArr(bArr); qs.quickSort(0,bArr.length-1); for(int i=0;i<arrLength;i++){ System.out.print(bArr[i]+" "); } BinarySearch bs=new BinarySearch(); bs.setArr(bArr); System.out.println(); System.out.println("查找:"); int val=bs.binarySearch(bArr.length-1,13); System.out.println("查找:bArr["+val+"]="+13); } int binarySearch(int max,int min,int val){//有重复的取的是第一个出现的位置 int mid=(max+min)/2; if(val==bArr[mid]){ return mid; } else if(val>bArr[mid]){ return binarySearch(max,mid,val); } else if(val<bArr[mid]){ return binarySearch(mid,min,val); } return -1;//查找失败 } } 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |