欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

时间:2021-07-02 08:57:47|栏目: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++通过TerminateProess结束进程实例

栏    目:C代码

下一篇:C++读入XML文件示例

本文标题:查找算法之二分查找的C++实现

本文地址:http://www.codeinn.net/misctech/151459.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有