随笔分类 -  《算法》C++代码

常见算法的C++实现
背包问题基本解法 —— 《背包九讲》笔记
摘要:相对于转载文章,我更喜欢写上一篇笔记,开篇给出原文链接。这样,能有些自己的东西,总结一番,对知识的理解能加深一层;别人看来,也更有价值。 今天做USACO题目时,一道题不会,网上查到解法是01背包,于是重新看了《背包九讲》。相比第一次看,理解深的多,可见我还是在进步的,只要我没停下脚步。如果大... 阅读全文

posted @ 2015-04-28 09:15 IceDream61 阅读(5854) 评论(0) 推荐(0) 编辑

《算法》C++代码 Dijkstra
摘要:单源最短路,复杂度是O(N²),堆优化的是O(NlogN)。基本思想是贪心,每次都加入一个当前最近的点,可以证明每次当时最近的点就是当前最短的路径。因此,所有点都加入之后,起点到所有点的最短路径就都求出来了。 在实现中,需要注意的是,在堆中的某个点i,不只要存当前到i的最短路径长度d[i],还... 阅读全文

posted @ 2014-12-24 16:16 IceDream61 阅读(377) 评论(0) 推荐(0) 编辑

《算法》C++代码 SPFA
摘要:SPFA的全称是Shortest Path Faster Algorithm,一看名称八成就是中国人起的名字,因为外国人起算法名称一般都会写上自己的名字,很少谦虚。实际上,这是西南交通大学段凡丁同学于1994年发表的,是针对Bellman-Ford算法的改进。在此不过多介绍背景,直接介绍SPF... 阅读全文

posted @ 2014-12-23 11:43 IceDream61 阅读(1880) 评论(0) 推荐(0) 编辑

《算法》C++代码 Floyd
摘要:今天写写最短路径的Floyd算法(有翻译叫弗洛伊德,不过这奇葩翻译用来读读就好……)。 这个算法的实质,广义来讲,其实是DP(动态规划)。其实按说,算法应该先说说什么贪心、搜索、DP、二分之类的基本算法的,但我觉得太广的东西对没有基础的人来说讲起来不清楚,还是先写写比较典型的一些算法比较好。而... 阅读全文

posted @ 2014-12-23 10:59 IceDream61 阅读(1955) 评论(0) 推荐(0) 编辑

《算法》C++代码 快速排序
摘要:快速排序,简称快排,常称QuickSort、QSort。在排序算法中非常常用,其编程复杂度低,时间复杂度O(NlogN),空间复杂度O(N),执行效率稳定,而且常数很低。 基本思想就是二分,例如你要将N个数排序,你调用了QSort(1,N)。那么快排会这样做: 1、找出一个数x 2、将N个数分成两部 阅读全文

posted @ 2014-12-04 17:07 IceDream61 阅读(3043) 评论(0) 推荐(0) 编辑

《算法》C++代码 前言
摘要:现在大二正在上《数据结构》课,课内的书上代码实现很喜欢无脑用类、变量名字很长,而且常常实现太繁琐,并且代码有些无法运行,这些对于老手无所谓,但初学者看起来却会很不舒服。因此写点自己的代码,大家可以借鉴一下,顺便自己总结一下热热手。 之前已经写了“《数据结构》C++代码”系列,但是由于课内安排了... 阅读全文

posted @ 2014-12-04 14:07 IceDream61 阅读(276) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示