第二页

来源:互联网 发布:手机版淘宝助理卖家版 编辑:程序博客网 时间:2024/06/12 00:24
 
·         Haffman: 给定一组权值固定的叶节点,当构造出的二叉树路径长度最短时的二叉树就叫做haffman.
·         图中基本概念:完全图: 即是图中任何两个定点间都有唯一一个不相同的边.对于无向图变数n(n-1)/2, 对于有向图:n(n-1). 邻接点: 对于无向图: E(u,v),说边E依附于点u,v; u,v互为邻接顶点; 对于有向图,E<u,v>, 则说u邻接到v,v邻接自v,E与顶点u,v关联; 顶点的度: 即是与之关联的边数,对于有向图则为入度+出度;路径: 即是从顶点i到顶点j的一条路径的顶点序列. 路径长度: 路径所经过的边的权值之和.连通图: 即是图的任何两个顶点之间都有连通路径. 连通分量: 非连通图的极大连通子图.如果图为有向图的连通图叫做强连通图. 生成树: 连通图的极小连通子图(极小连通子图: 拥有图的所有n个节点,但是之后n-1条边,所有点连通): 最小生成树: (针对带权图)权值之和最小的生成树; 简单路径: 路径的顶点序列没有重复的顶点.
·         图的两种存储结构: 邻接矩阵: 就是用数组的方式存贮; 邻接表: 就是用三元组链表,无向图的邻接矩阵是对称的,此外还有逆邻接表(与邻接表同时使用,只是逆邻接表中每个节点中标出其source而不是dest), 十字交叉表: 再邻接表基础上加一个指向入边的指针; 邻接多重表
·         最小生成树算法: prim: 先把顶点分为两个集合U,V-U, 不断选取从U中到V-U中的点的最短边,把选到的点加入U, 再更新U中的点到V-U中点的最短边记录,直到U=V.(适用于顶点不多而边稠密的图), kruskal: 先把图按n个点分为n个连通分量,然后从小到大顺序选取边,使得选取的边的两个顶点位于两个不同的连通分量,最后直到只有一个连通分量(适用于边数不多而顶点多的图)
·         单源最短路径算法: dijkastra: (是个迭代算法)把顶点分为两个集合U, V-U. 先选取源点到V-U中各点距离最短的点加入U, 然后更新源点到V-U中各点的距离最短值是取原来的值与(源点到新加入的点与新加入的点到目标点距离之和)的最小值.最后直到所有点加入U
·         求任意两顶点间的最短距离: 1: 重复n次使用dijkastra算法. 2: Floyd算法: 用一个矩阵去维护图中任何两个点之间的最短距离,初始值取两点之间的直接距离, 然后对n个点循环n, 每次循环中考虑当前被循环的点k是否在i,j两点的最短路径上,如果在,则考察i,j的最短距离取原值与distance(i,k)+distance(k,j)的最小值,更新i,j的最短长度. 如果不在起最短路径上,则维持原来的值不变.
·         查找过程分为静态查找和动态查找.前者只是查找,后者如果查找不到则要把所查找元素加入表中.顺序表和等长索引表适用于前者,数表和不等长索引表适用于后者
·         如果以次关键码查找的话, 则用倒排索引表结构建立索引(倒排索引: 就是从记录的某个属性去查记录), 分为链式倒排索引和单元式倒排索引
·         BST: 左子树所有节点<根节点<=右子树所有节点,BST最坏情况下平均查找长度为O(n), 随机情况下为O(lb n)
·         平衡二叉树: 每个节点的左右子树深度之差不能超过1(每个节点的平衡因子取值1,0,-1),平衡二叉树调整: LL(右旋转),RR(做旋转),LR(先左转后右转),RL(先右转再左转)
·         B_: 多路平衡查找树(多路: 每个节点有多个关键码,平衡: 所有节点平衡因子为0,所有叶节点在同一层上,查找:同一节点的关键码按非递减顺序排列,每一关键码值>其左子树所有节点关键码,<其右子树所有节点关键码).B_树的插入始终在叶节点,每次提取中间关键码上升为父节点时,原节点就要分裂为两个节点. B_树的删除: 如果删除关键码为非叶子节点, 则通过用该关键码的右子树的叶子节点的最左关键码来代替该被删除的关键码从而转换成一个删除叶子节点关键码的问题. 如果删除关键码为叶子节点的关键码则分为(1: 删除后,叶子节点关键码>(m/2-1)取上整,则直接删除,否则看该叶子节点左右兄弟节点,如果其中一兄弟节点关键码个数>m/2-1),则将父节点中分割该二叶节点的关键码放入被删除的关键码处,然后用相应兄弟节点的最左关键码代替原来父节点中的分割关键码. 如果两个兄弟节点关键码个数也为m/2-1,则将其父节点中分割关键码和其兄弟组合成一个叶子节点代替被删除的叶子节点
·         常用的hash函数: 直接定址法h(K)=K+C; 求模法: h(K)=K%m; 数字分析法: 取关键码中某些取值叫均匀的数字位作为hash地址. Hash冲突解决常用法: 线性探查法,链表法(此时m=n)
 
原创粉丝点击