文章

166

粉丝

0

获赞

0

访问

10.0k

头像
2020年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年7月8日 18:13
阅读数 39

(1)算法基本思想把s1,s2,s3分别存放到三个数组a,b,c中 ,设置一个初值min =int_max 循环执行下面步骤

1.计算a(i) ,b(j),c(k)的距离d

2.如果d< min 则 min=d

3.把a(i),b(j),c(k)中数值最小的下标++

最后输出min

(2)

#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 findminftrip(int a[],int b[],int c[],int n,int m,int p){
	int 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],a[i],c[k])) j++;
		else k++;
	}
	return d_min;
} 

(3)时间复杂度o(n) 空间复杂度o(1)

 


评分及理由

(1)得分及理由(满分3分)

得分:3分

理由:学生的算法基本思想与标准答案中的方法二(同向多指针)一致,描述了正确的指针移动策略和距离更新逻辑,思路清晰且正确。

(2)得分及理由(满分8分)

得分:7分

理由:学生的代码实现基本正确,但存在以下问题:
1. 函数名findminftrip拼写错误(应为findMinDist),但属于非关键性错误,不扣分。
2. 绝对值函数abs_...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发