GESP C++ 真题 · 逐题精解
首页C++八级真题 › 2025年9月 › 第11题

GESP 2025年9月 C++八级 单选题 第11题

C++八级单选题2025年9月第11题

所属知识点:各类算法复杂度 难度要求:掌握 考频:中频

下列 Dijkstra 算法(每轮线性扫描找最小、出边邻接表松弛),顶点数 v、边数 e,其时间复杂度为:
void dijkstra(int v, Edge * graph[], int start, int * dis) {
    // 初始化 dis[], visited[]
    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)
            if (dis[e->out] > e->len) dis[e->out] = e->len;
    }
}

正确答案:A

题目解析

朴素 Dijkstra 每轮 O(v) 找最小、共 v 轮即 O(v²),松………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习