查找算法之二分查找的C++实现

作者:Struggler09 时间:2022-05-27 07:24:17 

二分查找

二分查找算法,说白了就是在有序的数组里面给予一个存在数组里面的值key,然后将其先和数组中间的比较,如果key大于中间值,进行下一次mid后面的比较,直到找到相等的,就可以得到它的位置。

前提:线性表中的记录必须是关键字有序(通常从小到大),线性表必须采用顺序存储。
基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;否则,在右半区查找。不断重复,直到查找成功或查找失败为止。


#include<iostream>
#include<stdio.h>
#define N 10
using namespace std;
int main()
{
int a[N],front,end,mid,i,x;
cout<<"请输入已经排好的序列10个:"<<endl;
for(i=0;i<N;i++)
{
cin>>a[i];
}
cout<<"请输入要查询的数字x"<<endl;
cin>>x;
front=0;
end=N-1;
mid=(front+end)/2;
while(front<end&&a[mid]!=x)
{
if(a[mid]>x) end=mid-1;
if(a[mid]<x) front=mid+1;
mid=(front+end)/2;
}
if(a[mid]!=x)
{
printf("找不到该数字!");
}
else
{
printf("找到了,该数字在第%d位置",mid+1);
}
return 0;
}

后记:

查找和排序都是在程序设计中经常用到的算法,查找相对而言较为简单,不外乎顺序查找、二分查找、哈希表查找和二叉排序树查找。
在面试的时候,不管是用循环还是用递归,面试官都期待应聘者能够信手拈来写出完整的二分查找代码,否则可能连继续面试的兴趣都没有。

来源:https://blog.csdn.net/qq_39486027/article/details/79647428

标签:c++,二分查找,算法
0
投稿

猜你喜欢

  • SpringBoot 项目中创建线程池

    2023-09-21 22:12:04
  • java中的类为什么只能用public修饰?

    2023-10-09 20:23:54
  • Java中string和int的互相转换问题

    2023-07-26 14:27:34
  • Java求解二叉树的最近公共祖先实例代码

    2023-09-14 18:24:56
  • Android 字符串中某个字段可点击和设置颜色的方法

    2023-07-24 00:16:53
  • Java常用JVM参数实战

    2023-03-15 10:33:39
  • 解决SpringBoot webSocket 资源无法加载、tomcat启动报错的问题

    2021-07-28 05:06:42
  • Flutter瀑布流仿写原生的复用机制详解

    2023-06-20 17:02:08
  • Java面向对象程序设计:类的定义,静态变量,成员变量,构造函数,封装与私有,this概念与用法详解

    2022-07-12 03:35:14
  • c#调用qq邮箱smtp发送邮件修改版代码分享

    2023-04-03 11:11:31
  • Android实现手机震动效果

    2022-11-05 12:20:43
  • Android Service总结及详细介绍

    2023-11-15 14:19:43
  • Java Hibernate使用SessionFactory创建Session案例详解

    2022-03-04 06:21:28
  • Java单例模式的应用示例

    2023-08-22 06:54:03
  • Android 事件分发详解及示例代码

    2023-09-08 05:18:45
  • 解析C#设计模式编程中外观模式Facade Pattern的应用

    2021-08-08 05:10:37
  • BufferedInputStream(缓冲输入流)详解_动力节点Java学院整理

    2022-01-08 07:02:41
  • Android入门之画图详解

    2023-11-09 11:47:47
  • Java链表中元素删除的实现方法详解【只删除一个元素情况】

    2023-01-16 11:49:41
  • c#消息提示框messagebox的详解及使用

    2022-06-25 14:57:44
  • asp之家 软件编程 m.aspxhome.com