MyBook
Adherer
sunshine
展开
-
Chapter1——递归和迭代
一.递归1.1 定义 对于递归的规范性定义可以参考维基百科:递归,但是我觉得这个定义对于初学者来说比较晦涩,下面是我在知乎上搜到的一个形象的比喻: 我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词,可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看原创 2018-01-31 21:10:49 · 599 阅读 · 0 评论 -
Chapter3——常用的排序和查找算法
一.排序1.冒泡排序 对于冒泡排序的规范性定义可以参考维基百科:冒泡排序,下面冒泡排序的算法过程引自维基百科: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素原创 2018-02-01 21:47:02 · 518 阅读 · 0 评论 -
Chapter4——贪心算法及其应用
写在前面 贪心算法是一个应用非常广泛的算法,由于我自己对贪心算法的认识也不够深刻,因此会比较偏重于从题目入手来理解和掌握贪心算法。1.1 定义 对于贪心算法的规范性定义可以参考维基百科:贪心法,下面是一段来自维基百科的定义: 贪心法,又称贪心算法、贪婪算法、或称贪婪法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好原创 2018-02-01 22:50:09 · 874 阅读 · 0 评论 -
Chapter8——链表的常见问题
写在前面 这一章对于一些有一定算法经验或者一定编程基础的同学来说,是比较容易的。但是,回顾自己当时学这一章的时候,确实是走了不少的弯路,因此自己写这一章的目的,旨在记录链表的一些常见问题以及这些问题的分析思路和解决方案。一、链表的一些易混淆概念1.头指针 or 头结点 or 首结点? 初学数据结构时,我对这几个概念也是分不清楚,所以开门见山,首先梳理这三个概原创 2018-02-02 11:45:21 · 1386 阅读 · 0 评论 -
Chapter14——动态规划及其应用
写在前面 动态规划这一类问题非常灵活,而且其下有很多子问题,由于自己水平有限,这里只比较基础的介绍动态规划,并带大家感性的认识一下什么是动态规划,为什么短短数行代码,会有如此大的威力?1.1 定义 对于动态规划的规范性定义可以参考维基百科:动态规划。 动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机原创 2018-02-02 22:36:20 · 1074 阅读 · 2 评论