2020年408统考真题(C语言)

一、题目描述

定义三元组(a,b,c)(a、b、c均为正数)的距离D=|a-b|+|b-c|+|c-a|。给定3个非空整数集合S1、S2、S3,按升序分别存储在3个数组中。请设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)(a∈S1,b∈S2,c∈S3)中的最小距离。例如S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为2,相应的三元组为(9,10,9)。

二、算法的基本思想

①使用Dmin记录所有已处理的三元组的最小距离,初值为一个足够大的整数。
②集合S1、S2和S3分别保存在数组A、B、C中。数组的下标变量i=j=k=0,当i<|S1|、j<|S2|且k<|S3|时(|S|表示集合中的元素个数),循环执行下面的a)~c)。
a)计算(A[i],B[j],C[k])的距离D;(计算D)
b)若D<Dmin,则Dmin=D;(更新D)
c)将A[i]、B[j]、C[k]中的最小值的下标+1;
③输出Dmin,结束

三、算法实现

#define INT_MAX 0x7fffffff
int abs_(int a){//计算绝对值if(a<0) return -a;else return a;
}
bool xls_min(int a,int b,int c){//a是否是三个数中的最小值if(a<=b&&a<=c) return true;return false;
}
int findMinofTrip(int A[],int n,int B[],int m,int C[],int p){//D_min用于记录三元组的最小距离,处置赋为INT_MAXint i=0,j=0,k=0,D_min=INT_MAX,D;while(i<n&&j<m&&k<p&&D_min>0){D=abs_(A[i]-B[j])+abs_(B[j]-C[k])+abs_(C[k]-A[i]);if(D<D_min) D_min=D;if(xls_min(A[i],B[j],C[k])) i++;else if(xls_min(B[j],C[k],A[i])) j++;else k++;}return D_min;
}

408计算机考研--数据结构--2020年统考真题(C语言)相关推荐

  1. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数

    目录 一.题目 二.解答 三.测试数据 一.题目   给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...

  2. 2023年考研计算机统考408计算机学科专业基础综合历年真题视频

    2023年考研计算机统考<408计算机学科专业基础综合>历年真题及模拟试题详解[视频讲解] 内容简介 本书共分为三部分: (1)备考指南:首先对考试大纲进行了解读,让考生掌握考研计算机联考 ...

  3. 中南大学计算机考研学硕王道论坛,2019年中南大学计算机考研经验分享(复试+真题)...

    本帖最后由 cs_focus 于 2019-5-16 13:51 编辑 2019年中南大学计算机考研经验分享一.序 [注]本篇经验主要分享复试经验(初试太差...),以及2019年真题回忆. 具体初试 ...

  4. 考研数据结构——必看链表真题(常规套路)

    考研数据结构目录 1.顺序表(链表操作) (1)基础单链表操作(模板) (2)必看链表习题(常规套路)  2.堆栈与队列 (1)栈的基本操作 (2)栈的链表操作  后续将持续更新~ 前言:首先这四个题 ...

  5. 408考研数据结构复习-时间复杂度与空间复杂度-附统考真题

    文章目录 一.时间复杂度 二.空间复杂度 三.相关题目 一.时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数.算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主 ...

  6. 2013计算机考研真题答案,2013年计算机考研统考真题及答案解析

    2013年计算机考研统考真题及答案解析 2017-08-09 09:20 | 考研集训营 考研专业课分为统考和非统考两大类,其中西医综合.法律硕士.计算机.历史学.教育学.心理学.中医综合和农学这八大 ...

  7. 【2022/2023年硕士研究生408计算机学科考试大纲原文】+【2009-2021年408统考真题+解析PDF】

    文章目录 2009-2021年408统考真题+解析(PDF版) I 考试性质 II 考查目标 III 试形式和试卷结构 一.试卷满分及考试时间 二.答题方式 三.试卷内容结构 四.试卷题型结构 IV ...

  8. 408 | 【2014年】计算机统考真题 自用回顾知识点整理

    选择题 T3:循环队列 不同指针指向,队列判空/判满条件 1. rear:指向队尾元素 front:指向队头元素前一个位置     (1)牺牲一个存储空间     (2)判空条件:front == r ...

  9. 2010计算机网络考研真题及答案,2010年计算机考研统考真题参考答案

    摘要: 2010年计算机考研统考真题参考答案,供考研学习备考用. 一.单选题 D C B C B   B A B A D   A D C C D   A D B A D   A D A C B   A ...

最新文章

  1. mac系统添加VSCode到右键菜单(转)
  2. 数据库连接工具HeidiSql介绍(支持MySQL,MariaDB,Microsoft SQL或PostgreSQL)
  3. 光滑粒子流体动力学_基于SPH(光滑粒子流体动力学)算法的流体仿真
  4. Ruby. Vs . Python
  5. oracle rac redo log,RAC共享online redo log和archived log的官方说明
  6. Java简单方法批量修改Windows文件夹下的文件名(简单IO使用)
  7. 文章中的代码添加语法高亮
  8. delphi之鼠标模拟
  9. (四十七) 蓝牙自拍杆原理学习
  10. 将网页内容保存为PDF
  11. 关于ps中钢笔工具的介绍
  12. mapgis考试11
  13. 端口汇聚实现多端口带宽叠加
  14. RT-Thread学习笔记——互斥量
  15. 在线修改http header
  16. Hacked Exam-Google Codejam 2021 Round 1A
  17. 画漫画软件有哪些?这几款绘画软件必不可少!
  18. 考研英语 词根词缀单词81-88
  19. 《大话设计模式》--牛市股票还会亏钱?--外观模式Facade(12)
  20. 医院CRM是什么?医院CRM能做什么?

热门文章

  1. Win10的界面字体突然变大的解决办法
  2. java错误日志打印问题
  3. i710700f和i512400f区别 i7 10700f和i5 12400f选哪个好
  4. 计算机文档xsl,XSL文件扩展名 - 什么是.xsl以及如何打开? - ReviverSoft
  5. linux网卡缓冲区设置,【Linux】tcp缓冲区大小的默认值、最大值
  6. JS 中 valueOf() 方法的详解
  7. C# textbox控件添加上提示文字
  8. 我的Machine Learning学习之路
  9. fullcalendar显示出勤日_FullCalendar日历插件应用之数据展现(一)
  10. c语言用数组10进制转16进制,十进制转十六进制c语言函数