20210520

恋词U20 | 数据结构-算法分析补充 | GS2-C6-REW

Table of Contents

啊今天是520哈~

恋词U20

背完这个单元就进入低频词汇了,之前都是中高频词汇。

数据结构-算法分析补充

线性结构相关时间复杂度分析

顺序表

image.png
访问 顺序查找 插入 删除
$O(1)$ $O(n)$ $O(n)$ $O(n)$

链表

image.png
访问 顺序查找 插入 删除
$O(n)$ $O(n)$ $O(1)$ $O(1)$

二叉树递归遍历

void r(BTNode *p)
{
if(p != NULL)
{
visit(p);
r(p->lChild);
r(p->rChild);
}
}

时间复杂度:$O(n)$


二叉树非递归遍历

时间复杂度:$O(n)$


二叉树层次遍历时间复杂度

时间复杂度:$O(n)$


非线性结构相关时间复杂度分析

图的邻接矩阵

时间复杂度:$O(n^2)$


图的邻接表

时间复杂度:$O(n+e)$


Prim(普里姆)算法

时间复杂度:$O(n^2)$


Kruskal(克鲁斯卡尔)算法

时间复杂度:$O(eloge)$


Dijkstra(迪杰斯特拉)算法

时间复杂度:$O(n^2)$


Floyd(弗洛伊德)算法

时间复杂度:$O(n^3)$


汉诺塔问题

问题描述与算法引入:

void hanoi(int n, char a, char b, char c)
{
if(1 == n)
{
std::cout<<a<<"->"<<c<<std::endl;
}
else
{
hanoi(n-1, a, c, b);
std::cout<<a<<"->"<<c<<std::endl;
hanoi(n-1, b, c, d);
}
}

时间复杂度分析:时间复杂度:$O(2^n)$


排序算法分析

不在这里解释,参考之前总结的:考研常考排序算法

GS2-C6-REW

回顾了一下第六章的东西,准备二刷第六章的题目,有道题mark一下。