把平时面试做的那些题目,整理出来。上面面试题目。用java写一个二分查找算法.采用递归的形式。
package test;


public class Search ...{

public Search()...{
}

/** *//**
* @param data 从小到大排好序的数组
* @param goal 要查找的数
* @param left
* @param right
* @return 目标数的数组下标,没有找到为-1 ;
*/

public static int find(int[] data,int goal,int left,int right)...{
int mid = (left+right)/2 ;

if(left>right)...{
return -1 ;
}

if(goal==data[mid])...{
return mid ;
}

else if(goal<data[mid])...{
//注意right = mid -1 ;
return find(data,goal,left,mid-1);
}

else if(goal>data[mid])...{
return find(data,goal,mid+1,right);
}
return -1 ;
}

public static void main(String[] args)...{

int[] data = new int[]...{1,2,4,6,7};
int result =find(data,6,0,data.length-1) ;
System.out.println(result);
}

}
