当前位置: 首页 > news >正文

万网的网站建设广州互联网公司集中在哪个区

万网的网站建设,广州互联网公司集中在哪个区,手机网站用什么做,自己开网店怎么找货源文章目录 题目函数接口定义裁判测试程序样例输入样例1输出样例1输入样例2输出样例2 题解解题思路完整代码AC代码 编程练习题目集目录 题目 本题要求实现二分查找算法。 函数接口定义 Position BinarySearch( List L, ElementType X ); 其中 L i s t List List 结构定义如下&…

文章目录

  • 题目
    • 函数接口定义
    • 裁判测试程序样例
    • 输入样例1
    • 输出样例1
    • 输入样例2
    • 输出样例2
  • 题解
    • 解题思路
    • 完整代码
    • AC代码

编程练习题目集目录

题目

  本题要求实现二分查找算法。

函数接口定义

Position BinarySearch( List L, ElementType X );

  其中 L i s t List List 结构定义如下:

typedef int Position;
typedef struct LNode *List;
struct LNode {ElementType Data[MAXSIZE];Position Last; /* 保存线性表中最后一个元素的位置 */
};

   L L L是用户传入的一个线性表,其中 E l e m e n t T y p e ElementType ElementType 元素可以通过 > 、 = = 、 < >、==、< >==< 进行比较,并且题目保证传入的数据是递增有序的。函数 B i n a r y S e a r c h BinarySearch BinarySearch 要查找 X X X D a t a Data Data 中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记 N o t F o u n d NotFound NotFound

裁判测试程序样例

#include <stdio.h>
#include <stdlib.h>#define MAXSIZE 10
#define NotFound 0
typedef int ElementType;typedef int Position;
typedef struct LNode *List;
struct LNode {ElementType Data[MAXSIZE];Position Last; /* 保存线性表中最后一个元素的位置 */
};List ReadInput(); /* 裁判实现,细节不表。元素从下标1开始存储 */
Position BinarySearch( List L, ElementType X );int main()
{List L;ElementType X;Position P;L = ReadInput();scanf("%d", &X);P = BinarySearch( L, X );printf("%d\n", P);return 0;
}/* 你的代码将被嵌在这里 */

输入样例1

5
12 31 55 89 101
31

输出样例1

2

输入样例2

3
26 78 233
31

输出样例2

0

题解

解题思路

  按照二分查找算法的思路对 L i s t List List 中的数据进行查找,具体查找思路可参考:查找算法,如果查找到目标数字,则直接返回其下标,如果没有找到则返回 N o t F o u n d NotFound NotFound (定义为 0 0 0);
  注:为了方便测试及代码完整性,对裁判实现的部分进行了模拟实现(有添加变量)。

完整代码

#include <stdio.h>
#include <stdlib.h>#define MAXSIZE 10
#define NotFound 0
typedef int ElementType;typedef int Position;
typedef struct LNode* List;
struct LNode {ElementType Data[MAXSIZE];Position Last;                                  /* 保存线性表中最后一个元素的位置 */
};int N;
List ReadInput();                                   /* 裁判实现,细节不表。元素从下标1开始存储 */
Position BinarySearch(List L, ElementType X);int main(void)
{List L;Position P;ElementType X;printf("请输入要输入的数字个数:\n");scanf("%d", &N);L = ReadInput();printf("请输入整数要查找的数字:\n");scanf("%d", &X);P = BinarySearch(L, X);printf("%d\n", P);return 0;
}List ReadInput() {                                      // 为了代码完整性,模拟实现 ReadInput() 函数List L = (List)malloc(sizeof(struct LNode));        // 分配内存if (L == NULL) {printf("内存分配失败!\n");exit(1);}L->Last = 0;                                        // 初始化为空表int count = 0;int value;printf("请输入 %d 个整数:\n", N);for (int i = 0; i < N; i++) {scanf("%d", &value);L->Last++;L->Data[L->Last] = value;count++;}if (count == MAXSIZE) {printf("警告:输入数据已达到最大容量 %d,剩余数据将被忽略。\n", MAXSIZE);}return L;
}/* 你的代码将被嵌在这里 */
Position BinarySearch(List L, ElementType X) {int head = 1;int end = L->Last;while (head <= end) {int mid = (head + end) / 2;if (L->Data[mid] == X) {return mid;                         // 找到要查找的数字}else if (L->Data[mid] > X) {end = mid - 1;}else {head = mid + 1;}}return NotFound;                        // 未找到要查找到数字,返回0
}

AC代码

Position BinarySearch(List L, ElementType X) {int head = 1;int end = L->Last;while (head <= end) {int mid = (head + end) / 2;if (L->Data[mid] == X) {return mid;                         // 找到要查找的数字}else if (L->Data[mid] > X) {end = mid - 1;}else {head = mid + 1;}}return NotFound;                        // 未找到要查找到数字,返回0
}
http://www.dtcms.com/a/490808.html

相关文章:

  • 数据安全系列7:常用的非对称算法浅析
  • uniapp微信小程序+vue3基础内容介绍~(含标签、组件生命周期、页面生命周期、条件编译(一码多用)、分包))
  • 微信小程序报错 ubepected character `的style换行问题
  • H5封装打包小程序助手抖音快手微信小程序看广告流量主开源
  • 金华建设局网站做爰片在线看网站
  • 如何做二维码链接网站虚拟空间的网站赚钱吗
  • 营业部绩效考核方案与管理方法
  • 光刻刻蚀工艺控制要点及材料技术进展与限制
  • VPS SSH密钥登录配置指南:告别密码,拥抱安全
  • 注入“侨动力” 锻造“湘非链”
  • 做网站自己申请域名还是建站公司菏泽最好的网站建设公司
  • 网站建设方面书籍温州网站建设案例
  • 【Linux】Linux 零拷贝技术全景解读:从内核到硬件的性能优化之道
  • 微软ML.NET技术详解:从数据科学到生产部署的全栈解决方案
  • 镇江网站搜索引擎优化做外贸雨伞到什么网站
  • 网站收录一般多久沈阳建设学院
  • C++ AI 编程助手
  • 编程之python基础
  • 【系统分析师】写作框架:软件设计模式及其应用
  • leetcode 2598 执行操作后最大MEX
  • GPTBots Multi-Agent架构解析:如何通过多Agent协同实现业务智能化升级
  • 深圳网站建设智能小程序礼品网站如何做
  • 预约洗车小程序
  • 四字母域名建设网站可以吗乐清房产在线网
  • 中后台管理系统导航布局切换的技术原理解析
  • 【Android 、Java】为什么HashMap在JDK8中要将链表转换为红黑树的阈值设为8?这个数字是如何确定的?
  • Django中处理多数据库场景
  • 建设信源网站全国分类信息网站排名
  • MathType延时使用
  • Vue3 基础语法全解析:从入门到实战的核心指南