|
发现数组(集合)中查询使用折中算法比较好。
因为,数据库能提供排序功能。
元素顺序排列的数组(集合) 可以非常方便的使用折中查找法。
参数描述:
int array[] :被查找数组
int n :被查找数组元素个数
int key :被查找的关键值
返回值:
如果没有找到: sq_Dichotomy_Search0 = -1
否则: sq_Dichotomy_Search0 = key数组下标
private int schList(List<MapObj> list,int key){
int low,high,mid;
low = 0;
high = list.size() - 1;
while(low<=high){
mid = (high+low)/2;
if(list.get(mid).getId() == key)
return(mid);
/*key>array[mid] 表明要求查找的值在[mid+1,high]*/
/*否则,在[low,mid-1]*/
if(key > list.get(mid).getId())
low = mid + 1;
else
high = mid - 1;
}
return(-1);//没找到
} |
|