当前位置: 首页 > news >正文

二分搜索及一些应用

二分搜索

对于在有序数组上的查找,我们可以使用二分搜索,时间复杂度为logn。

int BinarySearch(int* arr, int length, int num)
{int left, right, mid;left = 0;right = length - 1;mid = left + (right - left) >> 1;while (left <= right){if (arr[mid] == num)return mid;else if (arr[mid] <= num){left = mid + 1;mid = left + (right - left) >> 1;}else{right = mid - 1;mid = left + (right - left) >> 1;}}return -1;
}

寻找大于等于n的第一个数

//在有序数组中寻找>=num的最左位置
int BiggerLeft(int* arr, int length, int num)
{int mid, left, right;left = 0;right = length - 1;mid = (left + length) / 2;int result = -1;while (left <= right){if (arr[mid] >= num){result = mid;right = mid - 1;mid = left + (right - left) >> 1; //避免right + left时的溢出问题}else{left = mid + 1;mid = (left + right) / 2;}}return result;
}

寻找小于等于n的最后一个数

//寻找<=num的最右位置
int SmallerRight(int* arr, int length, int num)
{int left, right, mid, ans;left = 0;right = 0;mid = left + (right - left) >> 1;ans = -1;while (left <= right){if (arr[mid] == num)ans = mid;else if (arr[mid] <= num){left = mid + 1;mid = left + (right - left) >> 1;ans = mid;}else{right  = mid - 1;mid = left + (right - left) >> 1;}}return ans;
}

峰值问题

请参考这篇博客:![https://blog.csdn.net/Oorchi/article/details/153657027]

http://www.dtcms.com/a/509032.html

相关文章:

  • 高效编程——电脑配置与效率提升完全指南
  • 东莞网站建设关键词链接提交工具的推荐词
  • 网站建设项目心得体会海拉尔网站制作
  • 基于 seajs 的高性能网站开发和优化实践_王保平(淘宝)中山外贸网站建设价格
  • 做网站教程视频wordpress 301错误
  • 深圳网站优化服务重庆网站制作机构
  • 网站 手机版网站开发合同东莞网站搭建建站公司
  • 如何做网站域名解析石家庄最新封闭小区消息
  • OpenHarmony 之face_auth人脸驱动源码级拆解:v1.0→v2.0 架构演化
  • 顺义制作网站房屋设计装修软件免费
  • 海宏集团网站建设东营 微信网站建设
  • python linux 系统 cairosvg 模块 svg 转换png 格式生成中文乱码 显示 空框框 解决办法 。
  • Linux中挂载文件系统函数的实现
  • 綦江建站哪家正规做服务的网站吗
  • 怎样看一个网站做的网络广告58企业网站怎么做
  • Nature Immunology | 人类皮肤成纤维细胞单细胞和空间转录组图谱揭示不同组织中与疾病相关的成纤维细胞亚型的共性
  • Redis Stream:高效消息队列的解析与应用
  • 网站开发技术历史天津网络项目公司
  • 西安做的好的网站公司关掉wordpress站点
  • qq刷赞网站咋做网站备案去哪
  • 营销型网站 案例深圳网站建设开发
  • 赣州城乡建设局网站做外贸网站咨询
  • C++项目实战1:多角色管理系统总结
  • Sibyl 框架里有没有 迭代过程
  • Linux系统编程:(三)基础指令详解(2)
  • 肇庆住房和城乡建设部网站中国数据网
  • VS创建C++动态库和C#访问过程
  • Linux服务器编程实践57-功能强大的网络信息函数getaddrinfo:支持IPv4与IPv6
  • 美食网站html静态mooc网站建设
  • 网站备案申请书最新网站建设语言