一本书主义之”吸星大法”:《算法设计指南》

2023-05-26 0 376

热文编者按 | 点选副标题写作

讲真,计算机系可能快“改朝换代”了!

假如找不出好组织工作,你很大不是计算机系

同学,我提议你多韦尔齐人

一本书主义之”吸星大法”:《算法设计指南》

梅超风神功

对开发人员而言, 演算法可以说就是心法. 我们都晓得, 要想收放自如精湛, 必得刻苦钻研.

不过, 假如收放自如不如又很想去骑行武林, 咋办呢?

少女, 看你骨头陈曾寿, 是万中无一的演算法天才, 这儿可入秘笈《演算法结构设计手册》(专科课堂教学版), 袖珍演算法中的“梅超风神功”, 立刻要是挂牌上市了!

哇, 杨康的梅超风神功! 竟然除了这种的Junagadh? 嗯, 它已然名闻武林了:

《演算法结构设计手册》由演算法应用领域的著名专家Steven Skiena副教授撰写, 其主要文本主要包括基本上演算法结构设计、演算法预测、计算机程序、次序与搜寻、图演算法、静态总体规划和无解难题与近似演算法. Skiena副教授荣膺了IEEE软件工程建设与工程建设课堂教学奖, 这两本书则是其课堂教学经营理念的最合适展现出. 此书长年身居演算法卖座教科书前茅, 是两本难得的“演算法结构设计手册”, 它不但能做为韦尔蒙专精演算法专精课程的教科书, 对有关应用领域从业者亦是颇具商业价值的工具书.

一本书主义之”吸星大法”:《算法设计指南》

看完这个评价, 是不是很有兴趣? 且听我慢慢道来, 顺便告诉你《演算法结构设计手册》(专科课堂教学版)这本秘笈背后的故事.

曾经看到个笑话: C++开发人员面试时要对一个长为10000的数组a次序, 应聘者写下了一句:

std::sort(a, a+10000);

考官莞尔一笑, 转向了下一题.

注: 当然上面的这句也可以写成:

std::sort(std::begin(a), std::end(a));

《演算法结构设计手册》这两本书的思想基本上就是这种, 能用现成的库函数就不要自己写, 优先把程序组织起来. 以次序而言, 作者认为先把数据次序再进行处理是非常重要的一招, 有了次序之后的数据, 我们就可以:

运行二分搜寻.

找到差异最小的一组元素.

统计元素的频率分布.

构造出点集的凸包.

,再借助绝顶高手的深厚内力(不妨挑战一下std::sort函数的性能), 便可迸发出很强的武功招数. 事实上, 那些自己写次序的中级选手, 还真打不过你这个只会梅超风神功的毛头小伙子呢.

更妙的是, 目前各种库函数层出不穷, 随随便便就可以吸取众多大牛的内力, 构建程序时只需心无旁骛地从实际出发建立合适的模型便可马到功成.

化为己有

《演算法结构设计手册》不单授你吸取收放自如的方法, 还注重将内力逐渐化为自己的技能. 例如静态总体规划这种内力向来难以融合到体内, 而《演算法结构设计手册》独创一派, 让你自己在意念中构造静态总体规划, 便能左右逢源. 秘笈里说得好:

一旦你理解了静态总体规划这种方式就会发现很好用, 它也许应该是最简单易用的演算法结构设计技术了. 事实上, 我发现完全依靠自己思考来结构设计静态总体规划演算法更为简单, 而在书里去查 现成的演算法还得找半天. 也就是说, 你要是还没有真正理解静态总体规划, 那它看起来就如同魔法一般. 你得弄明白其中的窍门才能去用它.

说到这儿, 你肯定非常想看看如何完全依靠自己思考结构设计静态总体规划了.

演算法世界搭车客手册

要避免所吸取的心法让你走火入魔, 那么最合适按照作者推荐的心法心法来. 《演算法结构设计手册》推荐了很多优秀的演算法库和资源, 而这些精髓都在(http://www3.cs.stonybrook.edu/~algorith/), 做为新时代的演算法结构设计者, 肯定更愿意在网络上写作这些文本吧. 作者在前言里提到:

有位颇具洞察力的评论家因为这份便览非常强大的缘故, 将我的这两本书称作“演算法世界搭车客手册”(The Hitchhiker’s Guide to Algorithms).

能被评为“演算法世界搭车客手册”, 和闪耀着宇宙终极答案(我们都晓得是42)的那本《银河系搭车客手册》相提并论, 确实是一份极高的评价.

译者注释

这两本书里面有很多典故, 除了很多笑话. 有些地方要是不认真看, 可能还理解不了作者的深意. 虽然梅超风神功收放自如强大, 也需要指点一番才能理解.

多年以前很是佩服钱钟书老先生的《管锥编》, 可惜至今放在书架上未能看懂, 但先生的风范我是非常佩服的. 一条注释虽然短小, 但也是经过深思熟虑之后写出的结论, 而且有时候看注释比看原文更有趣.

所以, 我在翻译《演算法结构设计手册》的时候践行了钱先生的经营理念, 为这两本书撰写了270条翻译注释(也就是说随手翻开就能看到“译者注”). 当然, 有的读者不喜欢注释, 他们喜欢那种读下顺畅的感觉而觉得注释很啰嗦, 只能对这部分读者报以歉意了.

War Story

“结构设计”是两本书的核心, 作者不但以生动有趣的语言讲授了演算法结构设计中的常用技术与思想, 还着重教导我们应从已有经典结构设计和实现中汲取力量来完成难题求解, 而这正是一个优秀演算法组织工作者所必备的素养. 为了更全面真实地展现出作者的演算法结构设计观, 《演算法结构设计手册》每章都给出了若干取自现实案例的精彩War Story, 读者可以从中深刻体验到优秀演算法结构设计的曲折历程. 为了减轻写作的难度, 作者淡化了繁难的演算法预测而仅仅给出性能结论与对比, 这在同类演算法书中是相当少见的.

实际上, War Story就是实战案例, 学习了心法心法再配合这个, 实在是无敌了.关键在于, Skiena副教授的文笔风趣幽默, 谈笑间灰飞烟灭收拾了许多演算法难题, 这滋味着实酸爽哪!

一睹为快

当然, 做为“演算法时空”的读者, 你将提前看到如下新鲜发布的材料——也就是《演算法结构设计手册》(专科课堂教学版)的目录和样章.我们专门选择了第10章这份“梅超风神功”的要诀赠送给你!

一本书主义之”吸星大法”:《算法设计指南》

一本书主义之”吸星大法”:《算法设计指南》

样章

一本书主义之”吸星大法”:《算法设计指南》

一本书主义之”吸星大法”:《算法设计指南》

一本书主义之”吸星大法”:《算法设计指南》

一本书主义之”吸星大法”:《算法设计指南》

选购

《演算法结构设计手册》(专科课堂教学版)将由清华大学出版社出版, ISBN

一本书主义之”吸星大法”:《算法设计指南》

作者|  图文来自网络、如涉及版权难题,请联系我们以便处理。文章文本纯属作者个人观点,不代表本网观点。

编辑| 老猫

读书吧QQ群:481160039

一本书主义之”吸星大法”:《算法设计指南》

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务