文章

77

粉丝

9

获赞

2

访问

7.6k

头像
【2018年】408计算机统考真题模拟考试 - 第41题答案笔记
数据结构
发布于2024年11月3日 21:16
阅读数 102

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

1)将数组进行选择快速排序,初始化count变量为1;然后从头遍历数组,当遍历到数组的第一个1元素时,count++ ,后续匹配到count,继续对count++,直到遍历完最后返回count值,即为最小正整数

2)

int partition(int A[], int L, int R) {
    int mid = A[L];
    while (L < R) {
        while (A[R]>=mid && L<R) R--;
        A[L] = A[R];
        while (A[L]<=mid && L<R) L++;
        A[R] = A[L];
    }
    A[L] = mid;
    return L;
}

void Qsort(int A[], int L, int R) {
    if (R<=L) return;
    int M = partition(A, L, R);
    Qsort(A, L, M-1);
    Qsort(A, M+1, R);
}

int getMin(int A[], int len) {
    int count = 1;
    Qsort(A, 0, len-1);
    if (A[len-1]<=0) return 1;

    for (int i=0; i<len; i++) {
        if (A[i] == count) count++;
    }
    return count;
}

3)时间复杂度O(nlogn),空间复杂度O(logn)

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发