算法导论
文章平均质量分 77
code_mlym
学生狗
展开
-
算法导论第二章笔记
这一章首先以一个插入排序算法开始,以此为切入点分析算法。书上以伪代码来介绍算法,但是在这里我基本上会用c语言实现一遍,并用自己的语言复述一遍算法的思想。 首先附上插入排序的具体实现。void insert_sort (EleType *arr , int start , int end) { int i; int j; EleType temp; fo原创 2016-08-21 14:36:48 · 614 阅读 · 0 评论 -
算法导论第四章笔记
在之前的第三章中,主要讨论了标准渐进符号,让我们对算法的复杂度有了一个形式上的认识,这一章中讨论分治策略,原谅我大一线性代数现在全部都忘记了,所以这里我就不讨论strassen算法了(应该以后会把这个地方补充起来)。 这一章,作者使用了一个求最大子数组的例子来说明分治策略。分治策略我个人认为它的精髓就是,把大的问题化成较小的问题,当问题足够小的时候,也就成为了基本问题的时候就可以直接求解原创 2016-08-22 23:43:00 · 677 阅读 · 0 评论 -
堆排的实现和分析
在之前的算法导论的学习当中,我们学习了归并排序算法和插入排序算法。这里我们讨论算法导论第六章中的内容,堆排序。和归并排序相同的这个算法的时间的复杂度都是O(nlgn),和插入排序算法相同的是——堆排序是原址排序的。堆排序是一种十分优秀的算法,但是在实际的生产环境当中,快速排序算法使用更加频繁。快速排序的结构更加紧凑,因而时间复杂度之前的系数因子比较小,而且堆排序的实现比快速排序要更加复杂一些,在堆原创 2016-08-24 23:57:27 · 404 阅读 · 0 评论 -
红黑树的c语言实现
不得不说《算法导论》是一本非常厉害的书!我主要参考了《算法导论》和网络上其他一些优秀的红黑书原理的资料,实现了这个红黑树的代码。很有意义,在整个过程中虽然大部分的时间还是看着书上的伪代码在敲c,但是整个原理已经大致在心中有了一个轮廓,为什么要这么实现红黑树那?前人是怎么想出来的那?路漫漫其修远兮,吾将上下而求索!希望自己有一天也能设计出这么精妙的数据结构算法。这篇文章之后我还将会实现一下avl树,原创 2016-09-03 16:53:06 · 1480 阅读 · 0 评论 -
广度优先搜索的c语言实现
今天下午有时间,好奇图论,所以把算法导论的22章的图论的基础给看了一下,最后那个强连通分量我没看,不知道有什么用处,等到要用的时候再看吧,一切按照兴趣走。晚上花了两个多小时把广度优先搜索的部分给实现了一遍,感觉还是比较棒的。整个过程中的数据结构方面,我没有因为实现方面的原因而浪费空间,尽力实现了这个广度优先搜索。 直接上附上代码,以后直接在代码上注释吧,不过多地写废话了,一些概念都在书上原创 2016-09-04 21:48:05 · 15773 阅读 · 2 评论 -
avl树的c++实现
最近在看c++,同时又在学习算法,所以这里我就用c++来写一些数据结构和算法。由于之前一直对avl耿耿于怀,所以我决定先把这个数据结构搞定,看来数据结构与算法分析上的描述(完全没有代码实现),我之前看了红黑的实现,所以觉得自己还是有信心完成的,于是拿起键盘自己独立实现了一发,事实证明,如果坚持不懈,那么自己能力范围之内的事情,我们一定可以做到!相比较于红黑树,avl树的实现在思路上是简单不少的,比原创 2016-09-20 14:28:03 · 625 阅读 · 0 评论