二分法查找
二分查找:
即每次用比较区域中间的数值和要查找的数值作比较。
令查找这个函数模块返回一个数字来判断查找结果,更加灵活清晰!
int search( int arr[], int key, int left,int right) //二分查找的函数
{
while (left <= right)
{
int mid = left + (right - left)/2;
if (key < arr[mid])
right = mid - 1;
else if (key > arr[mid])
left = mid + 1;
else
return mid;
}
return -1;
}
int main()
{
int arr[] = { 0,2,3,5,7,9,12,34,55,56,88}; int key = 34;
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int ret = search (arr,key,left,right);
if (ret == -1)
printf("查找不到!");
else
printf("找到了!它的数组下标为%d\n",ret);
system("pause");
return 0;
}
结果如图:
二分查找最坏情况下要比较 log2(n),n为数组个数。
相比顺序查找比较n次更提高了代码的效率。
二分查找和顺序查找都属于静态查找。
相关阅读
上面一章说了下高维稀疏数据如何通过learning to hash的方法来进行相似查找,这种主要想说下另外一种情况,稠密向量如何进行快速相似
论文的参考文献一般需要提供DOI,或者一直论文题目,下载时可能也需要它的DOI,一般就是 中文文献和英文文献两种,可以分别从两个网站
seo实验室宝店运营是非常重要的一个环节,店铺运营除了宣传推广之外,运用好铺助工具也是很重要的,淘宝有很多必备的工具,这些工具是你
今天百度上线了“种子搜索”功能,可以直接输入女优姓名和番号查到相关的种子,截止目前已经超过1600万网友成功搜索到种子
在Excel表格中,Excel查找能做什么?当然是查找文件里面指定的数据。以下是seo实验室小编为您带来的关于把Excel查找当筛选使用,希望