当前位置: 移动技术网 > IT编程>开发语言>Java > java数据结构之二分查找法 binarySearch的实例

java数据结构之二分查找法 binarySearch的实例

2019年07月19日  | 移动技术网IT编程  | 我要评论

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;//查找失败
 }
}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网