java数据结构之二分查找法 binarySearch的实例
程序员文章站
2024-04-01 23:23:58
java数据结构之二分查找法 binarysearch的实例
折半查找法,前提是已经排好序的数组才可查找
实例代码:
public class binarys...
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, 0, 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;//查找失败 } }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!