定义三元组(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

admin2021-03-17  32

问题 定义三元组(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)。要求:
给出算法的基本设计思想。

选项

答案算法的基本设计思想 ①使用min记录当前所有已处理过的三元组的最小距离,初值为C语言能表示的最大整数INT_MAX; ②若集合S1、S2和S3分别保存在数组A、B、C中。数组下标变量i=j=k=0,当i<|S1|且j<|S2|且k<|S3|时(|S|表示集合S中的元素个数),循环执行(a)~(c): (a)计算(A[i],B[i],C[k])的距离d; (b)若d<min,则min=d; (c)将A[i]、B[i]、C[k]中的最小值的下标+1; ③输出min,结束。

解析
转载请注明原文地址:https://jikaoti.com/ti/CxDjFFFM
0

相关试题推荐
最新回复(0)