文章
47
粉丝
0
获赞
0
访问
16.9k
1.采用三层循环结构依次计算各三元组中的最小距离,设置辅助变量Count存放计算过程中的最小值。
2. typedef find(int a[][][],int b[][][] ,int c[][][]){ 3.对应函数时间复杂度等于o(n³)空间复杂度等于o(1);
int count = maxint ; int x y z = 0;
for(i=0;i<=n;i++){
for(j=0: j<= n ; j++){
for (k=0; k<=n ; k++){
int mid = |a[i]-b[j]| + |b[j]-c[k]|+|a[i]-c[k]|
if( mid< count ){ count = =mid x==i y == j z==k;} }}} printf (三元组(%d;%d;%d), x ,y,z)
评分及理由
(1)得分及理由(满分3分)
学生给出了暴力枚举的基本思想,即三层循环遍历所有三元组计算距离并更新最小值。思路正确,但描述较为简略,未提及数组已排序等条件。基本思想可得2分(满分3分)。
(2)得分及理由(满分8分)
学生尝试用代码描述算法,但存在多处严重错误:
1. 函数声明语法错误(typedef错误,参数类型错误,使用了三维数组等)。
2. 循环条件错误(i<=n应为i<n,且三个数组长度不同,未分别使用n1,n2,n3)。
3. 变量声明错误(int x y z = 0; 语法错误)。
4. 赋值语句错误(count = =mid, x==i等误用比较运算符==代替赋值运算符=)。
5....
登录后发布评论
暂无评论,来抢沙发