考前背一背,睡前摇一摇
作者:
阿飞大魔王
,
2024-10-17 21:49:26
,
所有人可见
,
阅读 7
一、衡量算法的优劣主要有哪几个标准?请简述其内容
1.有穷性
2.可读性
3.健壮性
4.效率与低存储量需求
二、不同查找技术的优缺点
1.线性查找
优点:实现简单
缺点:查找效率很低 平均时间复杂度O(n)
2.二分查找
优点:查找效率高 O(nlogn)
缺点:需要事先对序列进行排序
3.哈希表查找
优点:速度很快 O(1)
缺点:哈希冲突严重时,效率会下降
4.二叉搜索树
优点:平均效率O(nlogn)高于线性查找
缺点:最坏情况下可能退化为链表形式,效率恶化到O(n)
插入和删除操作复杂度高,O(logn)
三、什么叫拓扑排序,其一般的应用场景是什么
拓扑排序是对有向无环图的顶点的一种排序,它使得若存在一条从顶点A到顶点B的路径,则在排序中顶点B出现在顶点A的后面
分值少:判断一个有向图是否存在回路,用于求AOE网的关键路径
分值多:任务调度,编译顺序,课程安排,工作流程管理,依赖关系分析
四、什么是哈夫曼树
哈夫曼树是一种带权路径长度最小的二叉树
五、什么是堆
n个关键字序列L[1...n]称为堆,当且仅当该序列满足:
L(i)>=L(2i)且L(i)>=L(2i+1)或L(i)<=L(2i)且L(i)<=L(2i+1)
六、栈和队列的相同点和不同点
相同点:1.线性结构
2.操作受限
3.效率高
不同点:
1.操作方式
2.允许操作的位置
3.应用场景
七、邻接矩阵和邻接表的异同
相同点:都可以表示图的基本结构
不同点:1.存储方式
2.空间复杂度
3.查询边的存在
4.插入和删除边
5.使用场景
八、简述渐进复杂度的定义/算法的渐进性分析
分析一个算法随着问题规模N的增加,该算法的运行时间或空间占用会呈现什么级别的增长率
九、最小支撑树的定义
对于一个带权连通无向图,生成树不同,每棵树的权也可能不同。设R为G的所有生成树的集合,若T为R中边的权值之和最小的那棵生成树,则T称为G的最小生成树