二分法查找是非常经典的定位查找算法,下面写一个记录之:
题目:有一个从小到大的有序数组如{1,2,3,3,5,9,10},有一个数为5,查找这个数在此数组中最邻近的下标。
思路:可以采用二分法来解此题。
/**
* 查找区间 first闭区间 last 开区间 如[0,6)
*
* @param array 查找数组
* @param first 查找开始下标闭区间
* @param last 查找结束下标开区间
* @param source 需要查找的目标值
* @return
*/
static int searchIndexFromArray(
int[] array,
int first,
int last,
int source) {
while (first <
last) {
int middle = first + (last - first) / 2
;
if (array[middle] <
source) {
first = middle + 1
;
} else {
last =
middle;
}
}
return first;
}
View Code
转载于:https://www.cnblogs.com/wuyouwei/p/10824388.html
相关资源:数据结构—成绩单生成器