自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Floyd算法

Floyd算法  本文主要讲解的是Floyd算法,这同样是经典的最短路算法之一。不同的是,如果要求出一个图上任意两点间的最短路径,我们无需调用n次Dijkstra算法,这时Floyd算法便有了用武之地。另外,该算法同样适用于存在负权的情况。   Floyd算法本质上是动态规划,核心是动态转移方程,重点在于分析与推导。下面我们就来分析问题。从点i到点j的最短路径不外乎有两种可能:第一种是直接从i到j

2017-12-08 10:36:03 234

原创 SPFA算法

SPFA算法  本文主要讲解的是SPFA算法(即Bellman-Ford算法的队列优化版)。该算法也是用于一种著名的求解单源最短路的算法。   上篇文章,我们详细讲解了Dijkstra算法的原理以及实现。(若没有学过,请先前往学习)多次强调的一点是,Dijkstra算法只适用于正权图的单源最短路。而对于存在权值为负的边的图,我们用的是SPFA(Shortest Path Faster Alg...

2017-12-08 10:30:31 927

原创 Dijkstra算法

Dijkstra算法  本文主要讲解的是一种著名的图论算法——Dijkstra算法。该算法由荷兰计算机科学家Dijkstra于1959 年提出,是一种经典的用于计算正权图上的单源最短路的算法。所谓单源最短路(Single-Source Shortest Path, SSSP),指的是从一个结点出发到其他所有结点的最短路。   简单介绍Dijkstra算法的基本思想。   设G=(V,E)是一个正

2017-12-07 16:40:21 382

原创 Prim算法

Prim算法  本文主要讲解的是Prim算法,该算法用于寻找最小生成树(MST)。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。(上一篇博客是Kruskal算法,如果没学过的话建议先移步去学习Kruskal算法)   Prim算法于1930年由捷克数学家沃伊捷赫•亚尔尼克发现;并在1957年由美国计算机科学家罗伯特•普里姆独立发现;1959年,

2017-12-06 08:16:24 550 1

原创 Kruskal算法

Kruskal算法  本文主要讲的是Kruskal算法,这是一种常用的用于寻找最小生成树的算法,由Joseph Kruskal于1956年发表。它是贪心的思想,易于编写,而且效率很高。   何为“最小生成树”呢?在一给定的无向图G = (V, E)中,(u, v)代表连接顶点u与顶点v的边,而w(u, v)代表此边的权重。连接G中所有的点,且边集T为E的子集的树(无环图),称为G的生成树(Span

2017-12-01 22:28:02 1229

原创 快速排序

快速排序  本文主要讲解的是快速排序。快速排序是最快的通用内部排序算法,它由C. A. R. Hoare在1962年提出。   快速排序采用的是分治的思想。基本原理如下:先找出一个元素(理论上可以随便找一个,但通常选取数组的第一个数)作为基准,然后对数组进行划分操作,使基准左边元素的值都不大于基准值,基准右边元素的值都不小于基准值。这样一来,作为基准的元素已经调整到其正确位置上。再不断重复上述操作

2017-11-30 17:26:26 181

原创 Eratosthenes筛法

Eratosthenes筛法Ps.这是本人写的第一篇博客,故必有不足之处,希望大家多多包涵,并提出好的意见与建议。我自己曾经是一名OIer,所以深知初学者学算法的不易。之后我会不定期地写一些介绍算法的文章与大家分享,还请各位支持! 那么,回归正题,本文主要讲解“Eratosthenes筛法”。 现考虑一个问题:如果要求出从1到n的所有素数,该怎么做呢?当然我们可以一个一个来判断是否为素数,但这显

2017-11-29 21:18:27 713 1

空空如也

空空如也

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

TA关注的人

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