算法与数据结构
会飞的卡卡
这个作者很懒,什么都没留下…
展开
-
常用的内部排序
常用的内部排序排序概述排序定义排序算法的分类选择排序直接选择排序堆排序排序概述排序定义排序就是让一组数据满足某种条件的操作;对于一个排序算法来说,一般从以下三个方面衡量一个算法的优劣:时间复杂度 主要是分析挂机案子的比较次数和记录的移动次数空间复杂度 分析排序算法中需要多少辅助内存稳定性 如果两条数据A和B排序的关键字值相等,排序后A、B的先后次序保持不变,则称...原创 2019-09-10 21:44:38 · 96 阅读 · 0 评论 -
最短路径——迪杰斯特拉 Dijkstra 算法
Dijkstra算法用于解决单源最短路径问题;是贪婪算法的最好的例子。在上述有向图中,要计算从点1到达其余各点的最短路径。其中两点之间的有向箭头表示从起点到终点的距离,例:0~2之间的箭头表示从0到2的距离为30,从2到0是不可达的。这里我们使用邻接矩阵data[][]来存储点到点之间的距离,data[3][4]表示3~4的路径,-1表示不可达;{{ 0, -1, 10, -1, 30, ...原创 2019-12-09 23:11:05 · 286 阅读 · 0 评论 -
图论入门篇
相关定义图 由顶点和边组成的结构顶点 图中的元素节点,如上图中的A,B,C等边(弧) 顶点之间的关系连线,如果边是有向(或者点对有序的),则图也会被叫做有向图。边的表示(A, B),同时也说明A,B邻接度 顶点邻接的顶点数目图的存储方式1.邻接矩阵对于上边的有向图,可以通过邻接矩阵的方式来表示:当图中顶点的度比较低时,我们说图是稀疏的,对应的矩阵也被称为稀疏矩阵2...原创 2019-12-04 00:11:05 · 610 阅读 · 1 评论 -
哈夫曼树(最优二叉树)
给定N个权值作为N个叶子节点,构造一个二叉树,带权路径长度总和最小,这样二叉树称做哈夫曼树,又称做最优二叉树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼编码数据通信中,需要将传输的文字转为二进制的字符串,为了使编码后字符串尽可能端,在不等长编码中,可以让使用频率高的字符用短码,频率低的字符使用长码。为了使不等长编码为前缀编码(要求一个字符的编码不能是另一个字符的编码的前缀...原创 2019-11-25 00:39:14 · 1790 阅读 · 0 评论 -
红黑树
红黑树:一种自平衡二叉查找树。红黑树和AVL树1类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。红黑树的性质节点是红色或黑色;根节点是黑色;每个红色节点的两个子节点都是黑色(从每个叶子到根的所有路径上不能有两个连续的红色节点);从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点红黑树的操作颜色变换:红 -> 黑, 黑 -&...原创 2019-11-17 20:09:06 · 81 阅读 · 0 评论 -
二叉查找树
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。在对二叉查找树进行中序遍历,会得到一个关键字的有序数列。下图所示就是一个二叉查找树:二叉查找树的查找...原创 2019-11-17 11:25:57 · 153 阅读 · 0 评论 -
二叉树的层次遍历
树的相关定义:结点:树里的元素 父子关系:节点之间相连的边 子树:结点大于1时,其余的结点分为互不相交的集合 度:子节点的数量 叶子:度为0的结点 孩子:结点的子树的根二叉树:一种特殊的数据结构,每个结点至多只有两个子树;二叉树的第N层至多有个结点,树至多有个结点。满二叉树:每个存在子结点的结点都有两个子结点完全二叉树:除了最后一层外,其他层的结点树达到最大...原创 2019-11-12 23:13:45 · 174 阅读 · 0 评论 -
动态规划之简单背包问题
背景有三个物品,,它们的信息如下:物品物品1物品2物品3体积124价值61012现在有一个能够容量为5的背包,将上述三个物品任意放入背包中,要求放入背包的物品的总价值最大;思路将背包容量按照单位容量划分,依次计算放入物品时被背包中物品的总价值:背包容量12345物品166666物品26101...原创 2019-11-09 23:19:46 · 235 阅读 · 0 评论