自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YY的博客

菜鸟也想飞

  • 博客(15)
  • 收藏
  • 关注

原创 算法导论第三十二章-字符串匹配-Cpp代码实现

算法导论第三十二章-字符串匹配-Cpp代码实现。这里主要实现了4种字符串的匹配方法,包括朴素字符串匹配,Rabin-Karp算法,有限自动机和KMP算法。Rabin-Karp算法有点类似于使用了hash方法。有限自动机很巧妙使用当前匹配的字符数来作为状态,使得算法看起来简单易懂。KMP算法是很经典的线性方法,速度很快,但是理解起来不是很容易。

2016-06-28 17:41:03 638

原创 算法导论第二十五章-所有结点对的最短路径问题-Cpp代码实现

这一章就实现了一个Floyd算法。其中路径的表示没有采用书上的前驱表示,而是用每一对结点中开始结点的后继来表示。

2016-06-24 12:21:08 434

原创 算法导论第二十四章-单源最短路径-Cpp代码实现

算法导论第二十四章-单源最短路径-Cpp代码实现。实现了Bellman-Ford算法和Dijkstra算法。这里的Dijkstra采用了贪心策略。

2016-06-23 20:15:12 493

原创 算法导论第十八章-B树-Cpp代码实现

B数的实现。删除有点复杂且没有伪代码,以后有时间再补上。

2016-06-20 21:55:17 444

原创 算法导论第十六章-贪心算法-Cpp代码实现

算法导论第十六章-贪心算法-Cpp代码实现贪心算法其实是利用动态规划思想,简化后的一种方法。它强调的是贪心选择和最优子结构的结合。利用贪心策略设计的算法很多,包括最小生成树算法,单源最短路径的Dijkstra算法等。这一章通过一个活动选择问题引出贪心算法,分别实现了递归贪心算法和迭代贪心算法两种。贪心算法还可以用来解决分数(部分)背包问题,但是不能用于解决0-1(完全)背包问题。16.2给出了贪心算法的原理说明。Huffman树的构建也利用到了贪心原理,结合了prefix code的优势。这里Huff

2016-06-17 15:14:48 1382

原创 算法导论第十五章-动态规划-Cpp代码实现

算法导论第十五章-动态规划-Cpp代码实现。实现了书中切钢条最大收益问题和经典算法最长公共子序列(LCS)的问题。从递归,引出带备忘的自顶向下,自底向上等解法。

2016-06-16 18:10:47 346

原创 算法导论第十三章-红黑树-Cpp代码实现

经过两三天的探索,终于把红黑树的实现完成了。难点主要在于理解删除时对于多一重颜色的理解。另外,对于插入和删除的修正原理有一定的了解。特别是删除时候4种情况的判断以及对应措施,非常经典。

2016-06-15 16:53:21 428

原创 算法导论第十二章-二叉搜索树-Cpp代码实现

算法导论第十二章-二叉搜索树-Cpp代码实现。实现了BST(二叉搜索树)的一些基本操作,比如插入,删除,查找元素,查找前驱后继等。

2016-06-12 22:33:32 333

原创 算法导论第十章-基本数据结构-Cpp代码实现

算法导论第十章-基本数据结构-Cpp代码实现。实现了3个基本的数据结构:栈,队列和双向链表。

2016-06-10 14:46:14 433

原创 算法导论第四章-分治策略-Cpp代码实现

算法导论第四章-分治策略-Cpp代码实现第四章由一个股票交易问题,引出求最大子数组的问题。其实最大子数组的解法有很多,用动态规划我认为是最简单的方法。这里使用了分治法,递归的思路很清晰。

2016-06-08 14:11:51 350

原创 算法导论第二章-算法基础-Cpp代码实现

算法导论第二章-算法基础-Cpp代码实现。为了完整性补上前面几章的代码。这里比较简单,实现一个in-place的插入排序和in-place的归并排序。

2016-06-08 12:16:25 367

原创 算法导论第九章-中位数和顺序统计量-Cpp代码实现

算法导论第九章-中位数和顺序统计量-Cpp代码实现。根据书上内容实现了最大值,最小值,第i小的数,第i大的数和求数组的中位数。

2016-06-07 13:42:26 385

原创 算法导论第八章-线性时间排序-Cpp代码实现

实现了3个线性时间的排序方法,分别是计数排序,基数排序和桶排序。都是根据特定场景下实现的。

2016-06-06 20:37:21 260

原创 算法导论第七章-快速排序-Cpp代码实现

实现了算法导论第七章中的快速排序

2016-06-05 15:07:04 724

原创 算法导论第六章-堆排序-Cpp代码实现

实现了算法导论第六章中堆排序

2016-06-04 17:11:26 475

空空如也

空空如也

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

TA关注的人

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