文章

78

粉丝

0

获赞

0

访问

3.6k

头像
2010年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年7月27日 17:55
阅读数 66

(1)设计思想:将0到p-1的序列设为A,将p到n-1的序列设为B,则经过(AB)^-1 = B^-1A^-1,(B^-1)^-1(A^-1)^-1 = BA,这样就实现了循环左移操作。

(2)void reverse(int a[],int low, int high) { //将序列从low到high进行翻转
    int temp = 0;
    while (low < high) {
        temp = a[low];
        a[low] = a[high];
        a[high] = temp;
        low++;
        high--;
    }
}
void moveLeft(int a[], int p, int n) {
    reverse(a, 0, n-1);
    reverse(a, 0,p-1);
    reverse(a, p, n - 1);
}

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


评分及理由

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

得分:4分

理由:学生的设计思想与标准答案一致,正确描述了通过三次逆置实现循环左移的思路,表述清晰。

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

得分:5分

理由:学生的代码实现了三次逆置操作,但顺序与标准答案不一致(标准答案先逆置前p个元素,再逆置剩余元素,最后整体逆置;而学生先整体逆置,再逆置前p个元素,最后逆置剩余元素)。虽然逻辑正确,但顺序错误可能导致结果不正确(需进一步验证),因此扣2分。代码注释和关键步骤注释不足,扣1分。

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

得分:2分

理由:学生正确分析了时间复...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发