public class findNum {
/**
* @param PLA
* 题目:一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}
是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
*/
/*用二分法查找貌似就挺快*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = new int[] { 4, 3, 2, 1, 6, 5 };
int k = 6;
System.out.println(find(a, k, 0, a.length - 1));
}
private static int find(int[] a, int k, int i, int j) {
// TODO Auto-generated method stub
int mid = i + (j - i) / 2;
if (mid == k)
return mid;
else if (a[i] >= k && a[mid] < k) {
return find(a, k, i, mid - 1);
} else {
return find(a, k, mid + 1, j);
}
}
}
一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
最新推荐文章于 2018-08-15 19:29:25 发布