
算法与数据结构
文章平均质量分 70
算法图文,便于理解
PeterCuiy
熟练C/C++,擅长于跨平台开发。
展开
-
最短路径
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,比如数据结构、图论、运筹学等。 1、算法思想 ...转载 2019-04-30 15:45:39 · 465 阅读 · 0 评论 -
快速排序算法
快速排序算法是冒泡排序的一种改进,快速排序也是通过逐渐消除待排序的无序序列中逆序元素来实现排序的 算法思想: (1)我们从待排序的记录序列中选取一个记录(通常第一个)作为基准元素(称为key)key=arr[left],然后设置两个变量,left指向数列的最左部,right指向数据的最右部。 (2)key首先与arr[right]进行比较,如果arr[right...转载 2019-07-08 10:08:15 · 221 阅读 · 0 评论 -
HTTPS由来(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)
1.对称数据加密 就像上图所示, 这加密和解密算法是公开的,那个密钥是保密的, 只有两人才知道, 这样生成的加密消息(密文) 别人就无法得知了。这叫对称加密算法,因为加密和解密用的是同一个密钥。 问题来了,这个密钥的双方必须得知道,但是通过网络发送又不安全,这该怎么办呢?这时候就出现了非对称数据加密。 2.RSA:非对称加密 这个RSA算法非常有意思,它不是像之前的算法, 双方必须...转载 2019-07-12 17:45:29 · 431 阅读 · 0 评论 -
哈希详解
Hash(哈希) Hash :散列,通过关于键值(key)的函数,将数据映射到内存存储中一个位置来访问。这个过程叫做Hash,这个映射函数称做散列函数,存放记录的数组称做散列表(Hash Table),又叫哈希表。JAVA函数hashCode()即请求对象的哈希值。 Hash的优点 先分类再查找,通过计算缩小范围,加快查找速度。 例: 集合:{13,19,25,27,17} 若是采用数...转载 2019-07-16 09:29:12 · 558 阅读 · 0 评论 -
算法导论--最小生成树(Kruskal和Prim算法)
转载 勿在浮沙筑高台http://blog.youkuaiyun.com/luoshixian099/article/details/51908175 关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一...转载 2021-01-07 10:11:21 · 209 阅读 · 0 评论 -
最小生成树
一、定义 给定一个无向图,如果他的某个子图中,任意两个顶点都能互相连通并且是一棵树,那么这棵树就叫做生成树,如果边上有权值,那么使得边权和最小的生成树叫做最小生成树。 实际问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网? 二、普里姆算法—Prim算法(适合稠密图) 用堆优化后时间复杂度...转载 2021-01-07 10:09:43 · 1122 阅读 · 0 评论 -
反转链表-图文
反转链表-图文 第一步:定义三个链表指针pre、cur、next分别代表前一个、当前、下一个。 第二步:首先将next赋值为cur->next指向下一个;然后将cur->next赋值为p进行反转;之后将p=cur为下一次循环的前一个;最后将cur=next第一个节点反转完成。 第三步:循环执行第二步,直达cur到达最后变为null。 ...原创 2021-01-07 10:06:52 · 212 阅读 · 0 评论