6-2 折半查找的实现 (10 分)
给一个严格递增数列,函数Search_Bin(SSTable ST, KeyType key)用来二分地查找key在数列中的位置。
函数接口定义:
Search_Bin(SSTable ST, KeyType key)
其中ST是有序表,key是查找的值
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>#define NOT_FOUND -1typedef int KeyType;typedef struct {KeyType key;
}SElemType;typedef struct {SElemType *elem;int length;
}SSTable;int Search_Bin(SSTable ST, KeyType key);int main () {SSTable T;scanf("%d", &T.length);T.elem = (SElemType *) malloc ((T.length + 1) * sizeof(SElemType));for(int i = 1; i <= T.length; ++ i)scanf("%d", &T.elem[i].key);KeyType key;scanf("%d", &key);int pos = Search_Bin(T, key);if(pos == NOT_FOUND) puts("NOT FOUND");else printf("%d\n", pos);return 0;
}
/* 你的代码将被嵌在这里 */
输入格式:
第一行输入一个数n,表示有序表的元素个数,接下来一行n个数字,依次为表内元素值。 然后输入一个要查找的值。
输出格式:
输出这个值在表内的位置,如果没有找到,输出"NOT FOUND"。
输入样例:
4
1 2 3 4
3
输出样例:
3
我的代码:
int Search_Bin(SSTable ST, KeyType key)
{int mid=0,a=1,b=ST.length;while(a<=b){mid=(a+b)/2;if(ST.elem[mid].key==key)return mid;if(ST.elem[mid].key>key)b=mid-1;if(ST.elem[mid].key<key)a=mid+1;}return -1;
}
6-2 折半查找的实现 (10 分)相关推荐
- 面向对象程序设计——Java语言 第3周编程题 查找里程(10分)
面向对象程序设计--Java语言 第3周编程题 查找里程(10分) 题目内容 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. ...
- 在数组中查找指定元素 (10分) PTA (C语言)
7-2 在数组中查找指定元素 (10分) 输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数 n (1<n<=10),然后输入n个 ...
- 在数组中查找指定元素 (10分)
** 在数组中查找指定元素 (10分)** 本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中lis ...
- PTA 7-1 在数组中查找指定元素 (10 分)
输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数 n (1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数 ...
- 7-1 查找整数 (10 分)
本题要求从输入的N个整数中查找给定的X.如果找到,输出X的位置(从0开始数):如果没有找到,输出"Not Found". 设计思路: 转载于:https://www.cnblogs ...
- 7-60 二分查找法之过程 (10 分)
7-60 二分查找法之过程 (10 分) 本题要求使用二分查找法,在给定的n个升序排列的整数中查找x,并输出查找过程中每一步的中间结果.如果数组a中的元素与x的值相同,输出相应的下标(下标从0开始): ...
- 分治法 —— 折半查找(递归与非递归)
折半查找(二分查找) 假设为递增有序 基本思路 时间复杂度:O(log2 n) 设a[low-high]是当前查找区间,首先确定该区间的中点位置mid=L(low+high)/2I,然后将待查的k值与 ...
- 写几个函数: ①输入10个职工的姓名和职工号; ②按职工号由小到大顺序排序,姓名顺序也随之调整; ③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。
写几个函数: ①输入10个职工的姓名和职工号: ②按职工号由小到大顺序排序,姓名顺序也随之调整: ③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名. #i ...
- 7-1 查找成绩并折算后输出 (10分)
7-1 查找成绩并折算后输出 (10分) 查找成绩并折算后输出 从键盘输入若干人名.地名或者国家名,要求按照升序排序之后输出.输入格式: 7(表示将输入7个人名或者地名)Zhang3Li4Wang5M ...
- 7-4 单词替换 (10分)——单词查找替换方法
7-4 单词替换 (10分) 设计一个对字符串中的单词查找替换方法,实现对英文字符串中所有待替换单词的查找与替换. 输入格式: 首行输入母字符串,第二行输入查询的单词,第三行输入替换后的单词. 输出格 ...
最新文章
- 【转】文件恢复神器extundelete
- 聚类(上)K-mean算法
- R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
- 解决The total number of locks exceeds the lock table size错误
- Python稳基修炼的经典案例9(计算机二级、初学者必会turtle库例题)
- 咏南中间件+开发框架中秋国庆大促
- 1200万!硅谷AI大牛一年赚够北京二环一套房
- makefile 生成.o_要学好 C 语言 / C++ ,Makefile 可少不了
- 加权最小二乘(wls)滤波算法原理及实现
- 记录一次面试中的HTTP请求相关问题
- AutoJs学习-微信群发和引流
- 微信小程序上传图片使用canvas添加水印
- Win10——使用WePE工具U盘重装系统
- C++单例模式(懒汉模式)实现
- python写抽奖转盘_python实现大转盘抽奖效果
- 计算机主机不启动的故障,电脑不能正常启动的原因及解决方法
- 国产超级英雄逆袭好莱坞
- 华为HCNA技术配置小型公司网络
- 二叉平衡树平衡方法(RR、LL、RL、LR)
- Android开发笔记(序)
热门文章
- 代码写的太烂了,所以我干不下去了
- android 录屏工具,ShareREC for Android全系统手机录屏软件原理解析
- 热浪寒浪统计在python上的实现
- 多拨软件测试,记一次折腾苏州移动宽带多拨的过程
- Android Studio如何创建VR项目。
- Elasticsearch中间隔查询slop原理
- ActiveMQ失效转移(Failover)
- [易飞]一张领料单单身仓库quot;飞了quot;引起的思考
- ZenTao不支持Win8.1问题解决
- 基于MRCP的FreeSWITCH ASR/TTS开发