题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1200
第 301 题

上题程序的时间复杂度为( )。

A

$O(n)$

B

$O(n^2)$

C

$O(2^n)$

D

$O(n \log n)$

语言: C++
GESP真题 八级
2024.12
单选题号: 15
EXY-SC-1199
第 302 题

下面的快速排序程序中,两处横线处分别应填入的是( )。

void quick_sort(int a[], int n) {
    if (n <= 1)
        return;
    int pivot = 0, l = 0, r = n - 1;
    while (________) { // 在此处填入选项
        while (r > pivot && a[r] >= a[pivot])
            r--;
        if (r > pivot) {
            int temp = a[pivot];
            a[pivot] = a[r];
            a[r] = temp;
            pivot = r;
        }
        while (l < pivot && a[l] <= a[pivot])
            l++;
        if (l < pivot) {
            int temp = a[pivot];
            a[pivot] = a[l];
            a[l] = temp;
            pivot = l;
        }
    }
    quick_sort(a, pivot);
    quick_sort(________); // 在此处填入选项
}
A
l < r
a + pivot + 1, n - pivot - 1
B
l < r
a + pivot + 1, n - pivot
C
l <= r
a + pivot + 1, n - pivot - 1
D
l <= r
a + pivot + 1, n - pivot
语言: C++
GESP真题 八级
2024.12
单选题号: 14
EXY-SC-1198
第 303 题

假设图 graph 中顶点数 $v$、边数 $e$,上题程序的时间复杂度为( )。

A

$O(e)$

B

$O(v^2)$

C

$O(v \log v + e)$

D

$O((v + e) \log v)$

语言: C++
GESP真题 八级
2024.12
单选题号: 13
EXY-SC-1197
第 304 题

下列 Dijkstra 算法中,横线处应该填入的是( )。

typedef struct Edge {
    int in, out;     // 从下标in顶点到下标out顶点的边
    int len;         // 边长度
    struct Edge * next;
} Edge;
 
// v: 顶点个数, graph: 出边邻接表, start: 起点下标, dis: 输出每个顶点的最短距离
void dijkstra(int v, Edge * graph[], int start, int * dis) {
    const int MAX_DIS = 0x7fffff;
    for (int i = 0; i < v; i++)
        dis[i] = MAX_DIS;
    dis[start] = 0;
    int * visited = new int[v];
    for (int i = 0; i < v; i++)
        visited[i] = 0;
    visited[start] = 1;
    for (int t = 0; ; t++) {
        int min = MAX_DIS, minv = -1;
        for (int i = 0; i < v; i++) {
            if (visited[i] == 0 && min > dis[i]) {
                min = dis[i];
                minv = i;
            }
        }
        if (minv < 0)
            break;
        visited[minv] = 1;
        for (Edge * e = graph[minv]; e != NULL; e = e->next) {
            __________________  // 在此处填入选项
        }
    }
    delete[] visited;
}
A
if (dis[e->out] > e->len)
    dis[e->out] = e->len;
B
if (dis[e->out] > min + e->len)
    dis[e->out] = min + e->len;
C
if (dis[e->in] > e->len)
    dis[e->in] = e->len;
D
if (dis[e->in] > min + e->len)
    dis[e->in] = min + e->len;
语言: C++
GESP真题 八级
2024.12
单选题号: 12
EXY-SC-1196
第 305 题

下面最长公共子序列程序中,横线处应该填入的是( )。

#define MAX(A, B) ((A) > (B)) ? (A) : (B)
#define MIN(A, B) ((A) < (B)) ? (A) : (B)
int dp[MAX_L + 1][MAX_L + 1];
int LCS(char str1[], char str2[]) {
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    for (int i = 0; i < len1; i++)
        for(int j = 0; j < len2; j++)
            if (str1[i] == str2[j])
                dp[i + 1][j + 1] = dp[i][j] + 1;
            else
                _______;  // 在此处填入选项
    return dp[len1][len2];
}
A

dp[i + 1][j + 1] = dp[i][j + 1] + dp[i + 1][j]

B

dp[i + 1][j + 1] = MIN(dp[i][j + 1], dp[i + 1][j])

C

dp[i + 1][j + 1] = MAX(dp[i][j + 1], dp[i + 1][j])

D

dp[i + 1][j + 1] = MAX(dp[i][j + 1], dp[i + 1][j]) + 1

语言: C++
GESP真题 八级
2024.12
单选题号: 11
当前页显示 301 - 305 ,共 1260 道单选题