一:算法分析
1:时间复杂度计算
T(n)=函数执行的最大次数。执行次数与输入规模有关。
原则:
1)去除常系数
2)同等数量级并且并列的则用 + 连接,并列的但数量级不同的取大者
3)嵌套的相乘
所以,我们先用 T(n)=K*t(f1(n))+M*t(f2(n))... 计算出算法执行的最大次数,然后运行化简法则化简:去常系数,和式取大,嵌套相乘,即可得到复杂度
2:空间代价
如果需要用到容器存放处理过程中的数据,那么我们可以根据输入规模n计算出空间开销代价与n的关系式。
二:树
1:遍历二叉树
前序:根左右
中序:左根右
后序:左右根
2:链表建立二叉树
每个结点一个node,有左右指针指向儿子
3:数组实现完全二叉树
n为结点总数,r为当前结点下标,则:
父节点为:floor[(r-1)/2]
左兄弟:r-1(r为偶数)
右兄弟:r+1(r为奇数)
左儿子:2r+1
右儿子:2r+2
4:遍历二叉树
5:由中序+前/后序遍历重建二叉树
6:BST的建立与使用
7:最大/最小堆的建立
8:哈夫曼编码树的建立及使用
9:计算树的高度
10:统计叶子数目
三:排序
1:
四:检索
五:索引
六:图
时间: 2024-10-29 19:10:15