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
  • asp之家 软件编程 m.aspxhome.com