python 数据结构与算法知识图

1.算法思想:递归、分治(归并排序、二分查找、快速排序)、贪心(贪心策略排序+当前最优)、动态规划(最优子结构+递推式)、回溯(解空间:排列树+子集树、深度搜索+剪枝)、分支限界(解空间:排列树+子集树、广度搜索+剪枝))

2.排序算法:(low:冒泡、插入、选择;mid:快排、归并、堆排(完全二叉树,优先队列与二叉堆(大根堆或者小根堆))),其他:桶排序、基排序、基数排序)

3.数据结构及其相关算法:

①线性结构:栈、队列、链表、跳表;

②二叉树:与树有关的算法,一般包含搜索、插入、删除,二叉搜索树bst、avl 树(高度差为1,调整包括左旋、右旋、先左后右、先右后左)、红黑树(满足黑色节点和红色节点的性质);线索二叉树(利用叶子结点的空指针指向前驱结点或者后继结点,避免指针空间的浪费,相当于双向链表)

   多叉树:b树,用于磁盘或者数据库的存储与搜索;

 大话数据结构:树与二叉树的转换、霍夫曼树+霍夫曼编码(应用:数据压缩,先构建哈夫曼树得到加权路径长度wpl,然后得到哈夫曼编码对数据进行编码,起到压缩作用)

③图结构:采用python字典结构(散列表)建图,包含不加权的广度优先搜索、狄克斯特拉加权图寻找最短到达路径;

北京大学】数据结构与算法Python版(完整版):

表示方法:邻接矩阵(容易浪费存储空间造成稀疏矩阵)、邻接表(存储比较紧凑,高效),封装类

算法:BFS、DFS、

应用:拓扑排序(最优次序排序DFS)、最小生成树(用于路由广播消息的,保证只走每个节点一次不重复,保持最小连通边的图结构,Prim算法解决最小生成树,属于贪心算法)、最短路径(dijkstra算法:BFS+带权重)

 

④散列表:哈希,哈希寻址,哈希冲突;完美散列函数:md5,sha,用于文件比较,谷歌的登录密码sha散列值比较

⑤数论:欧几里得gcd求最大公约数、rsa加密解密算法;

⑥ 求topk:大根堆+比较堆顶+调整堆;

⑦ 第k大数:分治+找左最大、右最小;

 

4.查找算法:顺序、二分、bst、avl、b tree、散列

5. 串:朴素模式匹配,kmp模式匹配

6.懒猫老师:

①特殊矩阵的压缩:对称矩阵压缩(存储下三角,找对应关系)、三角矩阵、稀疏矩阵(三元组用来记录(行号、列号、值))

②二叉树、树、森林的转换

③二叉线索树(二叉链表,找到前驱和后继)

④表结构:

   DFS:压栈   BFS:队列

   最小生成树:包含全部顶点的极小连通图,含有N-1条边,多一条则构成回路,少一条则构成边,每条边都有代价,使得代价最小;Prim算法,Kruskal算法; 

 最短路径:Dijkstra算法,带权网图求代价最小,路由算法;Floyd算法

   AOV网及拓扑排序:AOV网表示活动(顶点)及优先关系(边)。案例:教学课程依赖关系的排序。考虑入度

   AOE网与关键路径:AOV+带权,举例:汽车从生产到组装的最短时间,可以帮助缩短整体时间

 

其他算法:参看算法图解(布隆过滤器、)

posted @ 2023-12-20 13:57  刘恩福  阅读(13)  评论(0编辑  收藏  举报