二分查找总结

package Test5;

import org.junit.Test;

public class zheBan {

//①要求数组必须是有序的 ②采用递归思想

//如果出现错序,可能会报数组越界或陷入死循环
public static void main(String[] args) {
int a[]={3,9,15,20,21,32,45,49,50,59,60,78};

int c=0;
int d=a.length-1;
zheBan.chaZhao(a,21,c,d);
}
//a是要查找数所在的数组,21是要查找的数,c是数组左边的下标,d是数组右边的下标
public static void chaZhao(int a[],int b,int c,int d){
int m=(c+d)/2;
if(b==a[m]){
System.out.print("要查找的数"+b+"在数组中的下标是"+m);
}else if(b<a[m]){//如果要找的数比数组中间的数小,则在数组左边找,修改右边下标
chaZhao(a,b,c,m-1);
}else if(b>a[m]){//如果要找的数比数组中间的数大,则在数组右边找,修改左边下标
chaZhao(a,b,m+1,d);
}

}
}

posted @ 2016-09-30 22:11  我的TURF  阅读(179)  评论(0编辑  收藏  举报