![](https://img-blog.csdnimg.cn/20200111181106761.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法分析
学习《数据结构 与算法分析这本书》的一些学习心得、笔记、过程记录。
方宁fangning
为之则易,不为则难。
展开
-
【数据结构】图的性质及类型
图性质和类型图子图路径连通图图图:graph顶点:vertex边:edge定义:图由一个顶点和边集组成,其中边将一对不同的顶点连接在一起(没对顶点之间至多有一条边连接)。简单图:不允许有重复边(平行边),不允许出现顶点连接到自身的边(自环),的图称为简单图。性质: 有 V 个顶点的简单图最多有 (V * V - V) / 2 = V * (V - 1) / 2条边。多重图:包含平行边的图。子图子图:subgraph定义:是组成图的边(及相关顶点)的一个子集。导出子原创 2020-08-22 00:41:33 · 2730 阅读 · 0 评论 -
【数据结构】赫夫曼树与赫夫曼编码(可执行完整代码)
赫夫曼编码对文件进行压缩与解密理论赫夫曼树赫夫曼编码应用应用源码运行结果截图理论赫夫曼树先有赫夫曼树,才有赫夫曼编码。所以,首先简单介绍一下什么是赫夫曼树。假设一共五个叶子节点,分别是2、3、5、7、8那么生成的赫夫曼树就是下面这样:赫夫曼树也叫最优二叉树,它的每一个结点具有一个权值。权值越大的结点离根节点越近,这样子从根节点到每一个叶子结点的所有带权路径的和(WPL)最小。假设叶子结点为 n, 则总结点数 = 2*n-1因为:叶子节点的度为 0,其他节点的度为2。有:(总结原创 2020-05-22 07:51:08 · 977 阅读 · 4 评论 -
【算法】动态规划:01背包问题(详解)
一共有 N 件物品,第 i 件物品的体积是 v[i],价值是 c[i] 。有一个容量为 M 的背包。在每件物品只能拿一次的前提下,求背包能装入物品的==总价值最大==为多少(并不要求背包装满,只要价值最大就行)?# 基本思路 1. 01背包是动态规划类问题。一般需要将主问题分解为多个子问题,==然后记录下不同子问题的解==,最终才能推得最终问题的答案。 2. 定义子问题:`前i件物品`恰放入一个`容量为v的背包`可以获得的==最大价值==是多少? 3. 我们用 f[i][v] 表示 __前i件物原创 2019-08-02 09:11:54 · 3102 阅读 · 0 评论 -
【算法】寻找第K大的数(快排思想实现二分)
寻找第K大数思考题给定N个数,求其中第K大的数。题目传送门查找第K大 CSU 2078小W有很强的好胜心,也有很明确的目标,总是希望当第k名,但是小W太菜了,经常达不到目标,于是他每次考试后都想知道第k名的分数是多少,然后以它为目标。 现在给出了每个人的分数,请求编程能力很强的你帮他迅速找到第k名的分数为多少,这样他才有更多的时间去学习。第一行为一个正整数t代表有t组数据。每组...原创 2020-01-16 16:20:40 · 1356 阅读 · 0 评论