开篇:润墨网以专业的文秘视角,为您筛选了一篇算法之道:从无有到无穷范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
图1给出的是常见的智力拼图游戏题。图的左面是一个六边形,右面的A、B、C、D、E、F、G是7块小拼图。这7块小拼图可以随意旋转和翻转。现在要把小拼图无缝镶嵌到图左面的六边形里。但有1块小拼图用不上,请找出这块用不上的小拼图。
这道题乍看似乎并不太容易:7块小拼盘可以随意旋转、翻转和组合,几乎有数不清的方式(至少对于肉眼来说是这样),短时间内似乎做不出来。但真是这样吗?对于一个一般的人来说,可能是这样。但对于一个具有算法思维的人来说,解这道题不过10~20秒钟的事情,真可谓是不费吹灰之力。你看出来了吗?
随着计算机应用广度和深度的不断增大,云存储及云计算逐渐浮出水面,信息技术已经弥漫到乍一看与计算机沾不上边的生活物件如电话、电视、冰箱、电饭锅、汽车甚至卧床等,并进而导致物联网的出现。在这个云计算与物联网的时代,几乎每个人的生活都或多或少地与计算技术分不开了。而将所有这些联网的物件有效、可靠、可用地管理起来却不是一件简单的事情:它需要某种规则和步骤。就像图1中的拼图游戏,解决它需要某种思维规则和步骤。而这就需要算法。
从广义上定义,算法就是求解问题的步骤(指令)。由于计算机的程序是一条指令接一条指令(步骤)地进行,它实际上就是算法的逐步展开与推进。因此,算法弥漫在所有的软件程序里,堪称是计算机的灵魂。
由此可见,学习算法、理解算法、掌握算法就成为物联网与云时代的一个重要话题。算法也成为一种炙手可热的知识与技能。根据对在校和离校大学生的调查,算法在人们尤其是专业人士心目中的地位在不断提高,人们学习算法的积极性也在普遍增加。但如何学好和深刻理解算法的精髓却鲜有人知道。尽管不时地有各种貌似大师似的人物对算法进行或高亢或肤浅的评论,尽管市场上充斥着古今中外的或宏篇或短小的各种算法书籍,但人们似乎无法从这些“大师”或“大作”里面获得清晰的引导。有的书籍虽然部头巨大,覆盖问题众多,却是逻辑凌乱、就事论事,各种算法设计或分析战略之间没有什么逻辑递进或层次关系,算法各种战略的顺序在安排上非常随意,与它们之间存在的因果关联不相符合。这些书和资料看多了,人们会觉得脑袋的东西越塞越多,好像给什么东西给堵住了一样。如果说看这些书还有任何收获的话,那就是获得各种具体问题的算法解答。而收获也仅限于此。在见到一个新问题时,对于到底应该使用何种设计和分析战略,或者应该以何种顺序来尝试各种算法战略却模糊不清甚至不得而知。
而要克服上述问题就需要培养算法思维,而不仅仅是学习各种具体算法战略和算法解答。
那么如何培养算法思维呢?答案就是掌握算法背后的逻辑。不同的算法战略看似不同,实则一脉相承,甚至从更高的层次上看就是同一种思维。所有的算法战略如分而治之、动态规划、贪婪选择、随机化、近似算法等只不过是同一思维的不同方面而已!明白了这一点,对算法的把握就能达到一个新的境界。
鉴于上述考虑,本人撰写了一本与现有算法书完全不同的算法书:《算法之道:从无有到无穷》。说这本书与其他算法书不同,不是说该书讨论的内容与其他算法书籍完全不同,而是本书讨论算法战略的入眼点、思维层次、演绎方式、讨论深度、叙述风格与其他算法书(或其它任何科技书)有着巨大的不同。下面就简略地介绍一下《算法之道》这本书。
算法之道:从无有到无穷
与其他算法书籍不同,此书是一本启示书,而不是算法字典或手册。本书着力训练读者的算法思维,力求克服其他算法书的内容堆砌、逻辑凌乱、陈述乏味、层次不清等问题,对算法背后的逻辑进行推导,对算法设计和分析战略的逻辑关系进行梳理,形成一个层次感强、由表入里、逐次递进的算法思想体系。例如,对于最小生成树问题,如果按照书中给出的算法思想体系依次使用不同的算法战略,则会发现,最小生成树的构建成本随着该思维体系中算法战略的逻辑递进而不断降低(图2和表1,其中,图2中的粗线条为构成最小生成树的边,表1中的V为图里面的节点数,E为边的条数)!而最小生成树问题也成为串起所有算法设计战略的一座桥梁,成为算法思维的一根联系纽带。
本书通过这种逻辑递进的算法战略讨论让读者看到,不同的算法战略虽然五花八门,实则同出一源,甚至就是同一种思维。它们之间存在逻辑和效率的递进关系。此外,在注重逻辑与思维的同时,本书没有忽略论述本身的趣味性。事实上,为了让读者在轻松中斟酌算法,本书把对算法的阐述与哲理和生活融合起来,以达到引人入胜和催人思索的目的。当然,上面所阐述的几点并不是本书的全部特点,甚至也不是最关键的特点。本文接下来就简略地概括一下《算法之道:从无有到无穷》一书的特点。
算法之道:从无有到无穷的特点
本书结构新颖,通过将算法的讨论分为五大部分(算法基本战略、算法设计战略、算法分析战略、经典算法讨论、难解与无解问题),呈现给读者不同一般算法书的算法脉络。
本书最显著的特点是对算法的讨论深入到其他书所没有深入的境界。我们更关注的是算法后面的逻辑脉络,强调一个算法为什么会出现,又为什么会是现在所呈现的样子。本书的第二个特点是结构紧凑:摈弃臃肿繁琐的内容堆砌,通过逻辑关系将算法各部分内容进行递进演绎。例如,暴力战略、分治战略、动态规划战略、贪婪战略、随机化战略都是在克服前面一个战略的基础上而出现,它们之间存在着很强的逻辑递进关系,也体现着算法思维的过程。本书的第三个特点是全新的角度:也许讲的是同样的算法、相似甚至相同的问题,但是采纳的是完全不同的角度,这种独特的视角能把我们对算法的理解带到新的高度。在内容与概念上,本书也提出了许多新颖的观点和思想。例如,本书对算法的定义就与一般算法书有较大不同;对单源单点最短路径和折半插入排序的讨论也是其他算法书所不曾有过的;从无有到无穷、从无穷到无有、一切尽在概率中、概率尽在一切中等算法思维更是其他书所没有;还有哈希算法中的赌徒原理、竞争分析、Johnson算法、对不可确定性问题的划分、算法之道和算法随想等。本书的最后一个特点是趣味讲解:以讲故事的形式将概念和算法的精华娓娓道来,非常易于理解和消化。
从来没有一本科技或者教科书与《算法之道:从无有到无穷》一书类似。这本书由作者几十年探索、研究、思考与实践算法的个人经历所启示,它是当今市场上唯一一本以培养算法思维为宗旨的书,不像其他书,仅仅是算法问题与解答的堆积或者是算法原理的平淡陈述。本书以不同寻常的结构与阐述,赋予每种算法战略以灵性,通过逻辑演绎、生活归纳、趣味讲述构建一个前所未有的既宏大又精妙的算法魔幻世界。
请做好心理准备,在随着本书一起领略算法思维与哲学的同时,读者的生活甚至生命都将可能发生改变,你看世界的视角与层次也将变化甚至颠覆。你会发现,这个世界原来运转在算法之上;原来,无有就是无穷,无穷就是无有,算法不过是无穷与无有的变换之间的一种思维方式。