编程题
二分查找
import ;
public class XC_1 (
/**
*二分查找
*
*题目描述:
请写一个二分查找算法查找一个数最先出现的index ,如果数不在集合中需要返编程题
二分查找
import ;
public class XC_1 (
/**
*二分查找
*
*题目描述:
请写一个二分查找算法查找一个数最先出现的index ,如果数不在集合中需要返回(-1)-当前 数应该出现的位置。
例如[1,3,6],查找5,5应该是在index=2的位置但并不在集合中。返回(-1)-2 = -3。
输入
第一行读入一个整数x ,表示要查找的数;第二行读入一个正整数n,表示待查找数组的元
素个数;第三行读入n个递增整数,构成待查找的数组。
输出
整数x在数组中出现的索引位置(索引从0开始计数);如果不存在,返回(-1)-当前数应该出 现的位置。
样例输入
3
5
0 13 5 6
样例输出
*/
public static void main(String[] args) (
Scanner in = new Scanner();
待查找的数
int target = ();
数组长度
int len = ();
int [] arr = new int[len];
for(int i = 0; i < len; i++){
arr[i] = ();
)
(resolution(target/ arrz ));
)
private static int resolution(int target, int [] arr, int len){
if(arr = = null || == 0)
return 0;
int er = 0;
return binarySearchRecursion(arrz target, 0, len-1, er);
) private static int binarySearchRecursion(int arry[]Jnt valuejnt start,int end, int er)
if (start > end)
return -1-er;
int mid = start + (end-start)/2;
if(arry[mid] = = value)
return mid;
else if (value < arry[mid])
(
end = mid -1;
er 二 mid;
return binarySearchRecursion(arry,value,start,end, er);
)
else
(
start = mid + 1;
er = mid + 1;
return binarySearchRecursion(arry,value,start,end, er);
)
)
)
股票利润
package
携程编程携程笔试面试精品资源 来自淘豆网m.daumloan.com转载请标明出处.