文章

60

粉丝

6

获赞

0

访问

6.6k

头像
【250518年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2025年5月18日 12:00
阅读数 52

计算机考研408统考历年真题及答案解析

 (1)利用二分的方法,

利用分治法的二分思想,每次根据中间元素的配对情况判断唯一元素所在区间: ​​偶数索引检查​​:若中间索引为偶数,比较其与下一位置的元素。若相同,则唯一元素在右侧;否则在左侧。 ​​奇数索引调整​​:若中间索引为奇数,则退一位使其变为偶数,再按上述规则判断。 ​​递归终止条件​​:当区间长度为1时,该元素即为唯一值。

(2)

int findSingle(int A[], int n) {
    int left = 0, right = n - 1;
    while (left < right) {
        int mid = left + (right - left) / 2;
        if (mid % 2 == 1) mid--;  // 确保mid为偶数
        if (A[mid] == A[mid + 1]) {
            left = mid + 2;  // 唯一元素在右侧
        } else {
            right = mid;    // 唯一元素在左侧
        }
    }
    return A[left];
}

(3)复杂度o(logn)


评分及理由

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

得分:3分

理由:学生的设计思想虽然与标准答案不同,但利用了二分查找的思想,能够正确解决问题,且时间复杂度更低(O(logn))。思路正确且高效,符合题目要求。

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

得分:8分

理由:学生的代码实现正确,逻辑清晰,关键步骤(如确保mid为偶数、比较A[mid]与A[mid+1])处理得当,注释虽未明确写出,但代码逻辑自明。与设计思想一致,能够高效解决问题。

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(logn),与标准答案的O(n)不同,但因其算法设计更高效,分析正确,故不扣分。

题目总分:3+8+2=13分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发