摘要:八、数据结构不一定很枯燥 正如我现在实习的公司的一个同事说的那样,数据结构是一本催眠的书,我想对于大多数人应该是这样的,当然对我也是,看着一大堆的算法,结构模型,不想睡觉那应该可以归结为geek一类的,但是呢,后来我找到了一个办法,就是动手,我发现无论看的时候有多无聊,写写程序所带来的那种兴奋感和成就感现在已经成为了支撑看完我一本书的精神动力,所以我想在我开始从堆栈到图的过程中,我尽我所能让所写的程序有更大的互动性,由于我的目的是能够让一些初学者对于编程写代码更感兴趣,而且我这水平也只能给初学者提供一点我以前学习的经验了,我本来想用MFC,用图形化界面来增加交互性的,后来我发现对于一个没有学过
阅读全文
摘要:七、骚年,这就是你的终极速度了吗? 在介绍了前面的几个排序算法之后,这一次我准备写写快速排序,快速排序之所以叫快速排序是因为它很快,它是已知实践中最快的排序算法(不过曾经我看过一个叫google的位图排序算法,传说能更快,但从那以后我再也没有找到过相关的资料了,所以说江湖小报上的消息还是不要信的比较好),它的平均运行时间能达到O(NLOGN),而且在绝大部分情况下很容易达到这个时间界。 快速排序算法过程分为如下几步: 1.如果数列中的元素只有0个或者1个,那么算法结束, 2.在待排序数列中任意选取一个数,记为p好了, 3.将剩下的元素划分成两个子序列,一个子序列里面的数全部比p小,另一个全部比
阅读全文
摘要:五、如何递,怎样归? 很多人看完递归的原理之后会有这种感觉,喔,这个原理我懂了,然后再找一道其余的题目看一看能不能写的出来,突然发现,我勒个去,还是不会。其实这种现象很普遍,所以如果你是这种的,也没有什么好沮丧的,我敢保证你能看的懂递归的执行过程,基本上已经比30%的人要强了。所以我觉得,我写一写我对递归思维的理解好了。递归这个词我的理解应该是传递和回归,如何把自身的状态传递下去和如何回归到一个结果上是递归问题的基本思维方式。 所谓如何传递,我觉得思维的难点是如何抽象出数学模型,如果是斐波那契数列那种有明确公式的话,很简单,直接按照公式该怎么操作怎么操作,难得是只有叙述性语言的,比如这种题目.
阅读全文
摘要:三、对于效率提高的初次尝试 对于最自然的几种排序算法,数学家们开始思考如何提高排序算法的效率,可以通过数学证明出来如果想达到这个目的,必须想办法将相距较远的元素进行交换,具体原理涉及到比较一定的数学证明,因为我不是学数学出生的,所以我不能完整严谨的写出这个证明,所以,套用一句俗话吧,如果感兴趣你可以自己查阅一下资料。 希尔排序是以其发明人Shell的名字命名的。这里有个故事就是在一些书上,这个算法被称作是Shell-Metzner排序法,但是呢,这个叫做Metzner的人说“我没有为这种算法做任何事,我的名字不应该出现在算法的名字中。”有没有瞬间觉得这个Metzner实在是太伟大了?特别是在现
阅读全文
摘要:周末开始更新了,首先感谢各位对我写的东西还能保持兴趣,先回答几个留言中的一个问题和我对无损编码那一节的一个留言的一个看法,第一个是推荐算法书,首先,我不是什么高手和大牛,所以当不起“推荐”这个词。我见过很多人,对于这个问题我觉得很多人都会说出《算法导论》,但是我不完全这么认为,我始终认为人和人是不一样的,《算法导论》肯定是一本经典的书,但是学习知识的目的是要学懂,比谁的能力大不是比谁看的经典书籍多,而是比谁懂得多。所以如果让我推荐的话,我觉得要分三种情况,第一种,你有很深的数学基础,高中特别喜欢做数学题,我觉得可以尝试看看《算法导论》甚至是传说中的《计算机程序设计艺术》,第二种就是高中并不对.
阅读全文
摘要:无损编码的霍夫曼编码以及其余的各种编码由于要使用比较复杂的数据结构,所以按照我昨天说的,我决定从数据结构开始写起。数据结构和算法很难完全的分开,好的数据结构能够提升算法的效率,而如果没有算法,单纯的谈数据结构,那么数据结构的应用价值就会大大的降低。那么,就从最基本的开始这一个系列吧。一、总是让人很抽象的算法分析 算法分析基本是所有数据结构与算法的第一章要讲的内容,大0表示法什么的总是让人很抽象,对于初学者,其实这一章的意义并不是很大,因为你很遇到在实际开发中一些大数据集的问题,在小规模数据的时候,各个算法之间的差别很难分辨出来。这就好比计算5个数的和,大家所用的时间基本都会差不多,但是要是计.
阅读全文
摘要:上个月项目荷兰大佬要检查,搞的我想写的东西不断推迟,现在检查完了,我决定继续把我想写的这整个一个系列写完,上一次写的是最简单的无损编码行程编码,这一次我想要写的是算术编码。这种编码的原理就是用一个数来代替一组数,我第一次看这个思想的时候深深的被这些大牛的思维方式所折服,用一个数代替一组数,这其实就是压缩的最基本思想,虽然看起来是那么的遥不可及,但是在这种大的思想的指引下,总能开创出接近于完美的方法,所以我一直觉得一个人敢想,有主意,无论这个主意多么的不靠谱,都是应该的,因为你总能从一定的想法中找到合适的启发,可惜的是,经过这么多年的教育,我经常都感觉自己的思想根本跳不出某一个圈子,很难获得一.
阅读全文