二分查找算法讲解及其C++代码实现
二分查找算法是一种常用的查找算法,也被称为折半查找。它可以在有序的数组或列表中快速查找需要的元素。
算法描述:
- 首先确定数组的中间位置mid=(left+right)/2;
- 然后将要查找的值key与中间位置的值进行比较;
- 如果key等于中间位置的值,则查找成功,返回mid;
- 如果key小于中间位置的值,则在左半部分继续查找;
- 如果key大于中间位置的值,则在右半部分继续查找;
- 重复以上步骤,直到查找到key或者left>right时,查找结束。
C++代码实现:
int binarySearch(int arr[], int n, int key)
{
int left = 0;
int right = n - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] == key)
return mid;
else if (arr[mid] > key)
right = mid - 1;
else if (arr[mid] < key)
left = mid + 1;
}
return -1; // 查找失败,返回-1
}
该函数接收三个参数,分别是:
- arr:有序数组指针;
- n:数组长度;
- key:要查找的值。
如果查找成功,函数将返回该元素在数组中的下标;否则,返回-1表示查找失败。
注意:使用二分查找算法前,必须先对数组进行排序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)