折半查找的实现
 1000(ms)
 10000(kb)
 2334 / 9041
编写程序实现折半查找算法。

输入

第一行是查找表的长度n
第二行是查找表中的数据元素 ;
第三行是要查找的数据元素的关键字.

输出

查找成功返回位序,不成功返回-1 ,第二行为比较的次数。

样例输入

11
5 13 19 21 37 56 64 75 80 88 92
100

样例输出

-1
4

#include<iostream>
#include<vector>
#include<stdlib.h>
using namespace std;
int main()
{
int n;
int flag=1;
int num=0;
cin>>n;
vector<int>a(n);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int m;
cin>>m;
int first=0,final=n-1;
while(n)
{
int t=(first+final)/2;
if(m==a[t]) 
{
cout<<t<<endl;
flag=0;
break;
}
if(m>a[t]) first=t;
if(m<a[t]) final=t;
num++;
n/=2;
}
if(flag) cout<<"-1"<<endl;
cout<<num;
return 0;
}

折半查找的实现 swustoj相关推荐

  1. 折半查找的实现(1010)swust-oj

    Description 编写程序实现折半查找算法. Input 第一行是查找表的长度n(11<=n<=100) : 第二行是查找表中的数据元素 : 第三行是要查找的数据元素的关键字. Ou ...

  2. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  3. python123第k序元素查找_Python实现折半查找并用matplotlib实现动态过程可视化

    折半查找是算法中减治策略的基本例子,实现起来也很简单,但是在网上看到的图片教程不觉得很乾巴麽?? 在这里插入图片描述 这是一个简单的实现: def Reduction(lists, k): " ...

  4. 折半查找函数(from 《The C Programming Language》)

    该函数用于判定已排序的数组array中是否存在某个特定的值value.这里假定数组元素以升序排列,如果数组array中包含value,则函数返回value在array中的位置(介于0~n-1之间的一个 ...

  5. 数据结构之二分查找(折半查找)

    数据结构之二分查找(折半查找) 二分查找又称折半查找,优点是次数比较少,查找速度快,平均性能好,其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先 ...

  6. python实现二分查找(折半查找)算法

    python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...

  7. 查找(包括顺序查找和折半查找)

    顺序查找 顺序查找又叫线性查找,主要用于线性表中的查找.顺序查找通常情况下分为对一般无序线性表的查找和对按关键字有序的顺序表的查找.下面进行比较讨论: 1.一般线性表的查找 作为一个直观的查找方法,其 ...

  8. 单链表折半查找c语言,为什么有序的单链表不能进行折半查找

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:为什么有序的单链表不能进行折半查找 问题详情:急!!!!拜托高手解答 等级低 分数不高 请帮帮忙 谢谢了回答:这是由链表的特决定的. ...

  9. 算法 - 折半查找(C#)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 递归实现 ...

  10. 折半查找递归算法_两篇文章带你了解java基础算法之递归和折半查找

    2.1 递归 递归(recursion)是一种常见的解决问题的方法,即把问题逐渐简单化.递归的基本思想就是"自己调用自己",一个使用递归技术的方法将会直接或者间接的调用自己.利用递 ...

最新文章

  1. 自动化专业是不是计算机专业,自动化专业算不算计算机专业?
  2. js的apply()与call()的区别
  3. ajax头文件报错,AJAX的CSRF保护
  4. C语言浮点数据在内存中的存储方式
  5. postgresql数据类型转换
  6. scrap连接django
  7. FZU 1894 志愿者选拔 - 单调队列
  8. 【分词】从why到how的中文分词详解,从算法原理到开源工具
  9. Linux下c编程设置串口属性和读写串口操作说明总结
  10. js之如何获取css样式
  11. 如何成为一名卓越的数据科学家 ——七剑之一:问题定义
  12. vcenter 进入 Linux 操作模式
  13. ZeroBrane Studio远程调试Lua程序(转)
  14. 极域课堂管理系统软件如何取消控制_微缔电子组装业MES系统软件六大功能组成...
  15. 2022年低压电工考试题及在线模拟考试
  16. mov格式如何转换成mp4?详细步骤教程
  17. rar压缩包解密在线网站,rar压缩包有密码如何解开?
  18. 一题多解×2(流的概念+递归)
  19. HDFS中NameNode和DataNode的作用
  20. 佐治亚理工计算机科学录取,佐治亚理工学院计算机科学排名第4(2018年TFE美国排名)...

热门文章

  1. 关键词推荐工具中的用户引导机制之三:相关搜索query技术
  2. 店内扫码点餐系统 计算机毕业设计 微信小程序开发
  3. 政府大数据服务,跑马圈地正当时
  4. 手工焊接电路板经验总结
  5. Linux Regulator Framework(1) - Framework
  6. Unity使用脚本动态修改材质球的颜色
  7. 笔记本连接外接显示器后耳机没有声音
  8. 鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构)
  9. 短语匹配-match_phrase以及slop参数
  10. 二维码:STM32F103 + LCD屏制作二维码