第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

智能推荐

Oracle中建立连续的序列sequence-程序员宅基地

要用到触发器1:此处触发器结构:create or replace tirrger tirrger_namebefore inserton table_namefor each row----------------------------declarebegin null;end; 2:建表create table ...

leetcode python 小技巧-程序员宅基地

由于没有系统学过python,一直都是当应用语言用,所以最近刷刷leetcode,看看大佬们的代码都是怎么写的,记录一下之前不知道的处理细节判断和返回语句同行python是个没有;作为单条语句结束符的语言,通过缩进来体现,之前并不知道可以这样写def function(nums: List[int]): if not nums: return 0二分查找相当于C++中的lo...

dhcp服务器设置自动,路由器DHCP服务器怎样设置_我解决我的问题的博客-程序员宅基地

DHCP概述DHCP就是动态主机配置协议(Dynamic Host Configuration Protocol),它的目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。这种网络服务有利于对网络中的客户机IP地址进行有效管理。DHCP功能分为两个部份:一个是服务器端,而另一个是客户端(客户端不用安装,windows 9x/2000/xp 在默认情况下都启动DHCP..._增加路由器dhcp需要设置自动吗

有关计算机组成原理知识的论文,计算机组成原理的相关论文_下厨房的博客-程序员宅基地

《计算机组成原理》是计算机科学与技术专业的一门专业核心课程,在整个专业课的教学中起到了承上启下的作用。下面是学习啦小编给大家推荐的计算机组成原理的相关论文,希望大家喜欢!计算机组成原理的相关论文篇一《计算机组成原理教学与实践的探讨》摘 要:本文简述了《计算机组成原理》教学中的现状和存在的问题,笔者结合自身的教学体会,提出了根据学生的特点,制定特色的教学大纲;在教学过程中,融合多种教学方式;在实验环..._计算机组成原理论文方向

PyCharm使用指南-程序员宅基地

本文将介绍:PyCharm 安装在 PyCharm 中写代码在 PyCharm 中运行代码在 PyCharm 中进行代码 debug 和测试在 PyCharm 中编辑已有项目在 PyCharm 中搜索和导航在 PyCharm 中使用版本控制在 PyCharm 中使用插件和外部工具使用 PyCharm Professional 功能,如 Django 支持和科学模式本文假设读者熟悉 Python 开发,且计算机中已安装某个版本的 Python。该教程将...

项目发起--kinect体感机器人-程序员宅基地

最近看到了kinect2.0开始发售了,

随便推点

捕获android异常,并打印出日志到本地库_判断throwable t根据不同的异常,打印不同的日志-程序员宅基地

import java.io.File;import java.io.FileOutputStream;import java.io.FilenameFilter;import java.io.PrintWriter;import java.io.StringWriter;import java.io.Writer;import java.lang.Thread.Uncau_判断throwable t根据不同的异常,打印不同的日志

排序算法合集_排序算法集成_忧郁的叮当猫的博客-程序员宅基地

1.给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出nullpublic class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { //两个指针,一个慢的,一个快的,快的追上了慢的就有环 if(null==pHead||pHead==pHead.next) return pHead; if(null==pHead.next) _排序算法集成

计算机在应用使用,工业计算机的应用主要在哪些领域-程序员宅基地

原则上机器视觉以及无人机和特种装备,还有就是轨道交通、新零售、工业4.0以及智慧城市、汽车制造、图书馆和物品追踪防伪等领域。每一个领域所需求的形状因数和安装选项不尽相同。工业计算机是坚固耐用的解决方案可满足苛刻的环境要求,例如防止液体和灰尘和极端温度以及高冲击和振动等。工业计算机同时还是长寿命周期解决方案,因此可以使用多年。工业计算机辅助设计是利用工业计算机系统辅助设计人员进行工程或产品设计,以实..._工厂中使用的计算机,其应用领域

树莓派系统安装_树莓派Raspbian Buster 4系统安装方法(在windows系统中安装)-程序员宅基地

前不久,树莓派 4 上线,它基于即将发布的 Debian 10 Buster 发行版系统。它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,大小与信用卡差不多,是许多创客玩家的首选卡片电脑。树莓派4现在手头上没有,只有3的版本。不过安装方法都是一样,这一次安装的系统也是最新版4.19。来一张安装完成的图片。1.准备工作树莓派主机,电源适配器,U盘或TF卡,显示屏,HDMI高清线...

用PHP实现一个关于德州扑克算法的程序(一):发牌-程序员宅基地

最近在自学PHP,感觉PHP很灵活。通过学习PHP,把以前学习C#、java时没有弄清楚的概念都理顺了,对OOP的认识又上升了一个台阶。为了检验最近的学习成果,决定写一个德扑的算法程序。这个程序很简单,只实现如下功能: 1、按照玩家的数量分配手牌; 2、把手牌和公牌进行组合后计算出胜负结果,以及获胜玩家和所有玩家的牌型;不考虑玩牌的过程,即没有下注这个阶段。====以下为正文==== 根据需求

想入坑大数据?必须要规划学习路线_大数据能不能规划路线-程序员宅基地

干货走起,闲话不多说,以下就是小编整理的大数据学习思路第一阶段:linux系统本阶段为大数据学习入门基础课程,帮大家进入大数据领取打好Linux基础,以便更好的学习Hadoop、habse、NoSQL、saprk、storm等众多技术要点。另:目前企业中无疑例外是使用Linux来搭建或部署项目的第二阶段:大型网站高并发处理本阶段的学习是为了让大家能够了解大数据..._大数据能不能规划路线