自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 论如何优雅地打印树与图

当我在调试数据结构的时候,错误出现,而命令行却无法优雅地呈现树的状态,只能自己在纸上作图。于是,我找到了一种优雅地打印树的方案。醒醒,这次不是用命令行了,我们要用Graphviz来画图。这款软件对应的语言名叫dot,是一种解释性语言,神奇之处在于可以自动排版。安装下载地址安装时请勾选环境变量安装完后,为了查看方便,我们可以装一个vscode插件,没有vscode可以通过下面这行命令来输出一个图片dot -Tpng sample.dot -o sample.png-Tpng: 转化为pn.

2021-02-06 19:46:11 494

原创 算法7-15:Dijskra堆优化详解(C++)(小白向)

在看这篇文章之前,你需要学会如何存储图,本文所用为邻接表。百度一下概述dij是一种快速求单源最短路径的贪心算法。单源,即为一个起点,到图中其他的点的最短路。未优化的dij创建一个dis表,将每一个节点到起点的距离记录下来。初始化时每一个距离都是无限大,这里可以用climits中的 INT_MAX或LLONG_MAX来代替无限。创建一个mark表,存储每一个点是否枚举过,初始化为false。更新起点四周的节点的距离。(起点可以直接到这些点)进入大循环枚举dis表,寻找距离离起点最近的节点

2021-02-06 19:45:23 585

原创 算法10-10,10-11:二叉堆vector实现详解(C++代码)(小白向)

在阅读这篇题解之前,你需要明白完全二叉树的概念,百度一下二叉堆是一种寻找最大值最小值十分高效的数据结构。理论普通二叉堆主要分为两种:小根堆大根堆特性:二叉堆的每一个节点都比它的子节点大(大根堆)或小(小根堆)。时间复杂度:插入删除为logn,去最大最小为常数。为了保持这个特性,我们需要在插入删除时互换节点。插入(小根堆)将节点插入到最后一个位置。与双亲节点比较,如果比上一个节点小就互换。重复2,直到双亲节点比节点小,或者节点位于根节点。删除(小根堆)删除默认都是删除堆的根

2021-02-06 19:44:29 167 2

原创 Johnson 全源最短路详解(小白向)

Part -1 前置算法你需了解dijkstra算法与bellman_ford算法。如果你想了解dijkstra,你可以去看程序员小灰的文章,C++代码我会在文章末尾给出(dijkstra,floyd,bellmen_ford和主角johnson)如果你想了解bellman_ford,可以参考《算法笔记》中的bellman_ford讲解,或者百度一下。Part 1 起因nlogn的堆优化dijkstra跑n次也要比n^3的floyd快。用dijkstra跑全源最短路应该不是一个坏主意。于是我询问了

2021-02-06 19:41:55 1629 5

原创 算法7-9:prim堆优化详解(C++代码)(小白向)

Part -1 前置算法了解图的存储,本文使用邻接表来存储图。Part 1 最小生成树什么是最小生成树?《算法导论》给了我们一个很好的解释最小生成树在许多领域都有它的作用。譬如网络的连接,每一个节点(计算机)断网后,最小生成树就会重新计算,所以算法的速度还是不容忽视的。最小生成树其实是最小权重生成树的简称。——百度百科Part 2 prim接下来要介绍的prim算法就是用来生成最小生成树的。prim是一种贪心算法。过程初始化变量名解释Dis,表示到整棵树的距离。Path

2021-02-06 19:39:16 3665 1

python爬虫代理ip

这里面有无数个ip地址,用于爬虫方面 ip.pkl文件可以由python的pickle库中的load函数导入成链表

2020-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除