C++二分查找算法实例
作者:^~~^ 时间:2021-09-07 20:40:05
本文实例为大家分享C++二分查找算法,通过改变边界位置来进行查找的方法,代码如下:
#include <iostream>
using namespace std;
int search(int *p,int length,int key);
int search1(int *p,int length,int key);
int main()
{
cout << "Hello world!" << endl;
int a[] = {1,2,3,4,5,6,7,8,8,8,9,10,11,12,13,14};
int len = sizeof(a)/sizeof(int);
int pos = search1(a,len,8);
cout << pos << endl;
return 0;
}
int search1(int *p,int length,int key)
{
int left=0;
int right=length-1;
while(left<=right)
{
int mid = (left+right)/2;
if(p[mid]>=key)
{
right = mid-1;
}else
{
left = mid+1;
}
}
if(left<length && p[left]==key)
return left;
return -1;
}
int search(int *p,int length,int key)
{
int left=0;
int right = length -1;
while(left<=right)
{
int mid = (left+right)/2;
if(p[mid]==key)
{
return mid;
}
if(p[mid] > key)
{
right = mid+1;
}
if(p[mid]<key)
{
left=mid-1;
}
}
return -1;
}
来源:http://www.cnblogs.com/lucy-lizhi/p/7381306.html
标签:C++,二分查找
0
投稿
猜你喜欢
详解Android控件状态依赖框架
2023-07-01 10:01:06
spring mvc中的@PathVariable获得请求url中的动态参数
2023-08-22 22:08:40
Android 单双击实现的方法步骤
2023-04-19 02:19:31
Android观察者模式实例分析
2022-07-24 09:21:32
C# 中使用正则表达式匹配字符的含义
2023-11-19 02:59:38
浅谈关于Mybatis的mapper-locations配置问题
2023-09-24 06:06:16
C#使用GET、POST请求获取结果
2023-04-20 13:35:43
一步步实现Viewpager卡片翻页效果
2022-10-15 02:14:25
详细解读C++编程中的匿名类类型和位域
2023-11-02 23:08:18
详解SpringBoot+SpringSecurity+jwt整合及初体验
2023-11-28 23:54:48
java面试题之try中含return语句时代码的执行顺序详解
2023-11-24 07:34:16
Java Validation Api使用方法实例解析
2023-05-16 05:44:58
C#中Lambda表达式的三种写法
2022-03-27 02:50:27
java搜索无向图中两点之间所有路径的算法
2023-11-10 09:28:26
Android studio so库找不到问题解决办法
2023-10-28 02:20:49
Android实现沉浸式导航栏实例代码
2023-02-18 02:15:17
C#算法之无重复字符的最长子串
2021-05-24 21:56:59
Java实现数组反转翻转的方法实例
2021-09-19 00:21:26
SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决
2022-07-18 02:30:47
c#实现md5加密示例
2023-04-19 16:37:11