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

 更新时间:2018年12月14日 08:53:30   作者:Struggler09  
今天小编就为大家分享一篇关于查找算法之二分查找的C++实现,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

二分查找

二分查找算法,说白了就是在有序的数组里面给予一个存在数组里面的值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;
}

后记:

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • C语言基础 原码、反码、补码和移码详解

    C语言基础 原码、反码、补码和移码详解

    这篇文章主要介绍了C语言基础 原码、反码、补码和移码详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • C 创建链表并将信息存储在二进制文件中读取的实例代码

    C 创建链表并将信息存储在二进制文件中读取的实例代码

    C 创建链表并将信息存储在二进制文件中读取的实例代码,需要的朋友可以参考一下
    2013-03-03
  • C++链表倒序实现方法

    C++链表倒序实现方法

    这篇文章主要介绍了C++链表倒序实现方法,是一个很经典的C++链表操作实例,需要的朋友可以参考下
    2014-08-08
  • 基于C语言实现简单五子棋游戏

    基于C语言实现简单五子棋游戏

    这篇文章主要为大家详细介绍了基于C语言实现简单五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • C++制作DLL文件的方法详解

    C++制作DLL文件的方法详解

    本文主要介绍如何制作DLL,将代码类中的方法以接口的形式暴露出来给exe程序使用。会涉及类厂创建方法实例、声明DLL接口、.def文件的使用等,感兴趣的可以了解一下
    2023-04-04
  • 基于C++17实现的手写线程池

    基于C++17实现的手写线程池

    本文主要介绍了基于C++17实现的手写线程池,自己实现了Any类,Semaphore类以及Result类的开发,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • C语言复数的加减及输出结构体

    C语言复数的加减及输出结构体

    大家好,本篇文章主要讲的是C语言复数的加减及输出结构体,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • C语言顺序表的实现代码

    C语言顺序表的实现代码

    这篇文章主要为大家详细介绍了C语言实现顺序表的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Qt实现Flappy Bird游戏

    Qt实现Flappy Bird游戏

    这篇文章主要为大家详细介绍了Qt实现Flappy Bird游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • C++设计模式之模板方法模式

    C++设计模式之模板方法模式

    这篇文章主要介绍了C++设计模式之模板方法模式,本文讲解了什么是模板方法模式、模板方法模式的UML类图、模板方法模式的使用场合等内容,需要的朋友可以参考下
    2014-10-10

最新评论