第14周项目1-验证折半查找算法(1)-程序员宅基地

/*
* Copyright (c)2015,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:项目1-1.cbp
* 作 者:李竹雅
* 完成日期:2015年12月7日
* 版 本 号:v1.0

* 问题描述:验证折半查找算法

* 输入描述:无
* 程序输出:测试数据
*/

代码:

#include <stdio.h>
#define MAXL 100
typedef int KeyType;
typedef char InfoType[10];
typedef struct
{
    KeyType key;                //KeyType为关键字的数据类型
    InfoType data;              //其他数据
} NodeType;
typedef NodeType SeqList[MAXL];     //顺序表类型


int BinSearch(SeqList R,int n,KeyType k)
{
    int low=0,high=n-1,mid;
    while (low<=high)
    {
        mid=(low+high)/2;
        if (R[mid].key==k)      //查找成功返回
            return mid+1;
        if (R[mid].key>k)       //继续在R[low..mid-1]中查找
            high=mid-1;
        else
            low=mid+1;          //继续在R[mid+1..high]中查找
    }
    return 0;
}


int main()
{
    int i,n=10;
    int result;
    SeqList R;
    KeyType a[]= {12,18,24,35,47,50,62,83,90,115,134},x=100;
    for (i=0; i<n; i++)
        R[i].key=a[i];
    result = BinSearch(R,n,x);
    if(result>0)
        printf("序列中第 %d 个是 %d\n",result, x);
    else
        printf("木有找到!\n");
    return 0;
}


 

运行结果:

x=47时:

 

当x=90时:

当x=100时:

知识点总结:

折半算法的验证。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lzy19960605/article/details/50207111

智能推荐

关于查看OCX控件接口和AdobeReader,FoxitReader在页面中展示PDF文件_foxitpdfreader control ocx-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏3次。IE浏览器展示pdf,控件,FoxitReader,FoxitReaderOCX.ocx,classid_foxitpdfreader control ocx

hive 字符串拼接函数_hive 字符串拼接 窗口函数-程序员宅基地

文章浏览阅读10w+次,点赞4次,收藏22次。字符串拼接函数CONCAT()语法: CONCAT(string A, string B…)返回值: string说明:返回输入字符串连接后的结果,支持任意个输入字符串举例:Hive> select concat(‘abc’,'def’,'gh’) from lxw_dual;abcdefgh延伸:指定分割字符的拼接函数CONCAT_WS()_hive 字符串拼接 窗口函数

2017软考 | 正式的培训课开始之前,我该做些什么?-程序员宅基地

文章浏览阅读98次。转眼又到了2017年上半年的软考考试季(5月20日),攻克要塞(公众号ruankao580)与培训结构合作的课程马上就要开始,基于攻克要塞软考团队以往的面授经验,因此,我们就面授课正式开始之前的预习事宜给出若干建议。考点:必须知道,考试所涉及的知识点众多,因此,对考点要有一个综合性的了解,我们不建议马上打开书,而是先看知识点的分布图或翻看教程的目录,初步形成对考试范围..._培训课开始之前怎么说

计算机二级c语言考试真题及答案详解,全国计算机二级c语言考试题-程序员宅基地

文章浏览阅读1k次。在全国的计算机二级考试中,我们会遇到什么样的知识点题目呢?下面是学习啦小编给大家整理的计算机二级c语言考试题目及答案,供大家参阅!计算机二级c语言考试选择题1.下列数据结构中,属于非线性结构的是(  )。A.循环队列B.带链队列C.二叉树D.带链栈2.在面向对象方法中,实现信息隐蔽是依靠(  )。A.对象的继承B.对象的多态C.对象的封装D.对象的分类3.对于循环队列,下列叙述中正确的是(  )。..._下选项中,能用做用户标识符的是( ).【2009年9月】 [单选题] avoidb8_8c_0_d

VFH & VFH+ & VFH*—— Path Planning_matlab vfh算法 路径规划 矢量场直方图-程序员宅基地

文章浏览阅读4.3k次,点赞11次,收藏40次。版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接 最近在学习VFH算法,感觉蛮神奇,特意从维基百科扒来了资料,供学习研究。。。 在机器人技术中,Vector Field Histogram(VFH,向量场直方图)是Johann Borenstein和Yoram Koren在1991年提出的一种实时路径规划算法。VFH通过所谓的直方图网格利用机器人环境的统计表示,因此非常重视处理来自传感器和建模误差的不确定性。与..._matlab vfh算法 路径规划 矢量场直方图

win10下安装基于caffe的 Faster-Rcnn-程序员宅基地

文章浏览阅读485次。安装教程  本篇博客将会教会你在Windows下配置py-faster-rcnn,请细心仔细阅读。说白了,Windows下配置这些东西就是一个坑。安装配置Anaconda  由于py-faster-rcnn要用到python,这里我们使用了Anaconda,Anaconda版本为Anaconda2-4.3.1-Windows-x86_64.exe,Anaconda下载地址,..._importerror: no module named rpn.proposal_layer

随便推点

RHCE考试--05、使用 Ansible Galaxy 安装角色_ansible-galaxy install -r requirements.yml-程序员宅基地

文章浏览阅读140次。使用 Ansible Galaxy 和要求文件 /home/greg/ansible/roles/requirements.yml。http://materials/haproxy.tar 此角色的名称应当为 balancer。http://materials/phpinfo.tar 此角色的名称应当为 phpinfo。_ansible-galaxy install -r requirements.yml

Spring中JDK动态代理和CGLIB动态代理的性能比较-程序员宅基地

文章浏览阅读141次。新项目开始之前领导让研究下公司原有的框架(基于struts1.2.9+spring2.0.6),比较古老了。读service基类时发现竟然将request穿透到了service层(request为BaseService的实例变量),这样service就变成了有状态Bean,使service层变成了非线程安全,导致用Spring容器管理service的时候不得不使用prototype的sco..._springboot 2.* 动态代理速度比较

window服务器环境将springboot项目 jar包注册成一个window服务自启动_springboot windows注册服务-程序员宅基地

文章浏览阅读1.6k次。window服务器环境将springboot项目 jar包安装成一个window服务自启动_springboot windows注册服务

北京科技大学计算机实践报告,北京科技大学计算机实践报告附加资料-Book5-程序员宅基地

文章浏览阅读115次。北京科技大学计算机实践报告附加资料Excel 文档学生期末考试成绩单学号 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 最高分 最低分 平均分 姓名 name1 name2 name3 name4 name5 name6 name7 name8 ..._03:0004:0005:0006:0007:0008:0009:0010:0011:0012:0013:0014:0015:00十團

Appium Android 自动化测试 -- 元素定位_appium自动化测试元素定位-程序员宅基地

文章浏览阅读281次。自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。_appium自动化测试元素定位

缓冲区溢出攻击_java缓冲区溢出攻击-程序员宅基地

文章浏览阅读154次。核心:通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序\color{red}{通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序}通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序如果了解函数调用时的栈帧结构的话,这很容易理解如果完全不懂的可以参考这篇文章:函数调用过程这里再解释一下,数组越界修改返回地址..._java缓冲区溢出攻击