内容简介

本书旨在探讨如何优化算法效率,详细阐述了经典算法和特殊算法的实现、应用技巧和复杂度验证过程,内容由浅入深,能帮助读者快速掌握复杂度适当、正确率高的高效编程方法以及自检、自测技巧,是参加 ACM ICPC、Google Code Jam 等国际编程竞赛、备战编程考试、提高编程效率、优化编程方法的参考书目。

适读人群:本书适合算法爱好者和编程人员,尤其是参加编程竞赛和考试的人员,可作为参加编程竞赛的备赛参考书目。

编辑推荐

  • 法国畅销算法与编程参考书
  • 128个简单、实用的算法实例
  • 透彻讲解基于 Python 的高效算法思路与编程要点
  • 战胜编程竞赛技术难关
  • 在线提供更多趣题和拓展实战例子
  • 国际编程大赛导师经验精髓,破解竞赛的制胜秘籍
  • 提高竞赛、应试与编程技能

作者简介

Christoph Dürr,法国国家科学研究院研究员,巴黎皮埃尔-玛丽 · 居里大学博士生导师,Operation Research 科研组研究主任。

Jill-Jênn Vie,法国高等电力学院博士、算法讲师,担任法国高等师范学院 Paris-Saclay 团队在 ACM 竞赛中的算法导师;曾任法国国际编程大赛 Prologin 主席,并于2014年获 Google RISE Award。

本书内容

译者序

22 年前的秋天,我刚刚进入初中时,得到了一台中华学习机。它的 1 MHz 主频甚至赶不上现在一台 10 元钱的计算器。我从第一行用 BASIC 语言写的 IF/ELSE 开始,开启了自己的编程人生。1996 年,还是初中生的我凭着不多的算法和逻辑知识参加了国家信息学奥林匹克竞赛,当然,最后只得到了安慰奖。二十多年后,我得知当年斩获金牌的是王小川,如今搜狗的 CEO。

现在,我在一家互联网公司负责技术并管理研发团队。从自身的职业发展经历,以及在中国和法国的招聘和用人经历中,我深刻体会到了软件工程师的成就在很大程度上取决于他的专业知识视野。这是个很现实的问题。因此,我在得到翻译这本法语技术书的机会时,欣然接受了这个颇有难度的任务。

法国是一个盛产数学家的国度。不同于大家的传统印象,法国人在“浪漫”的同时,在工作和科研中非常讲究逻辑与验证——产品原型要验证,技术探索要验证。证明和实验有着同样不可或缺的地位。理论和实践的结合,让法国学界和企业界在相当长时间内保持着旺盛的生命力与创造力。这是我在法国 8 年学习和工作中的真实体验。

本书由法国国际信息学奥林匹克竞赛“国家队”辅导老师编写,凝聚了作者辅导高中生、大学生参加国际信息学奥林匹克竞赛的大量经验和技巧。书中提及的部分算法十分常见,在实际工作中也十分常用。但也有另一部分算法,例如舞蹈链算法以及一些涉及图论与匹配的算法,在中国的大学教育都不太提及。

在人工智能和深度学习大发展的今天,Python 语言、算法,特别是证明算法可靠性和高效性的能力,是进入大数据和人工智能人才市场的入场券。希望读者善用 Github 和作者准备的源代码网站,以及网上能够找到的技术资源,在尝试代码实现的同时,去理解算法复杂度的证明过程,从而彻底掌握并熟练运用这些凝聚了很多代人智慧的无形资产。

我要感谢教我写下第一行代码的哥哥史轶,支持并指导我参加国家信息学奥林匹克竞赛的湖北省十堰市东风汽车公司第四中学的陈长国老师,用大量课外知识开拓了我的见识的东风汽车公司第一中学的吴华山老师,支持我前往法国留学的父母,以及一直以来给我带来太多快乐的妻子和孩子。

由于个人水平有限,译文不能做到尽善尽美,欢迎读者通过我的个人网站 www.jetwaves.cn 与我交流。

史世强

2017 年 10 月于巴黎

我们编写本书的主要动力是对 Python 语言编程的热爱和对解决算法问题的激情。Python 语言能够如此打动人,是因为这种语言能让我们编写清晰而优雅的代码,把注意力集中于算法的本质步骤,而不需要过多关注复杂的语法和数据结构。同时,我们用 Python 完成编写程序后数个月再回头来读的时候,仍然可以理解自己写的代码,这一点十分有教益。作为本书的作者,我们最希望的是能接受新的挑战,其次是能经得住各种测试,因为一段程序代码只有在毫无 bug 地实现后,我们才算真正地掌握了编程技巧。我们希望用自己的热情感染读者,营造出一种氛围,鼓励大家学习和掌握扎实的算法和编程基础知识。这种学习经历往往会受到大型软件企业招聘人员的赏识,而对于软件工程师或计算机科学教育工作者来说,这对其整个职业生涯也会有所帮助。

本书按照主题而不是技术分类收录了 128 种算法。其中某些算法是常见的经典算法,另一些则不太常见。尤其在读者备战 ACM-ICPC、Google Code Jam、Facebook Hacker Cup、Prologin 和 France-ioi 等编程竞赛时,本书编写的大量问题将起到积极的辅导作用。我们希望本书能够成为算法的基础教程和高级程序设计教程的参考,或者能让学习数学和计算机专业的读者看到与众不同的进修内容。读者可以在网站 tryalgo.org(http://tryalgo.org/code/)上找到本书使用的源代码库 {1[也可以用 PyPI 直接安装后下载查看并执行。——译者注]},以及用来测试代码调试结果和实现性能的链接。

感谢 Huong 和智子,如果没有这两位朋友的支持,本书是无法完成的。感谢法国综合理工学院和法国高等师范学院 Cachan 分校的学生们,他们多次通宵达旦的训练,为本书提供了很多素材。最后,感谢所有审阅手稿的朋友们,他们是 René Adad、Evripidis Bampis、Binh-Minh Bui-Xuan、Stéphane Henriot、Lê Thành Dững Nguyễn、Alexandre Nolin 和 Antoine Pietri。本书的作者之一要特别感谢在 Tiers 高中时的老师 Yves Lemaire 先生:当年就是在这位老师的启迪下,作者才初次发现了本书 2.5 节中描述的“宝藏”。

最后,我们希望读者在碰到算法难题时,能够耐心地花时间去思考。祝愿大家能在豁然间找到解答,甚至是一个优雅的解答,享受到胜利的喜悦之情。

好,我们要开始了!

第1章 引言
第2章 字符串
第3章 序列
第4章 数组
第5章 区间
第6章 图
第7章 图中的环
第8章 最短路径
第9章 耦合性和流
第10章 树
第11章 集合
第12章 点和多边形
第13章 长方形
第14章 计算
第15章 穷举

阅读全文: http://gitbook.cn/gitchat/geekbook/5bbd724d9ccd7c1379f30155

高效算法:竞赛、应试与提高必修128例相关推荐

  1. 《算法竞赛入门经典(第二版)》pdf

    下载地址:网盘下载 内容简介  · · · · · · <算法竞赛入门经典(第2版)>是一本算法竞赛的入门与提高教材,把C/C++语言.算法和解题有机地结合在一起,淡化理论,注重学习方法和 ...

  2. 《算法竞赛入门经典(第2版)》

    <算法竞赛入门经典(第2版)> 基本信息 作者: 刘汝佳 丛书名: 算法艺术与信息学竞赛 出版社:清华大学出版社 ISBN:9787302356288 上架时间:2014-6-5 出版日期 ...

  3. [算法竞赛]第八章_高效程序设计

    第8章 高效算法设计 [教学内容相关章节] 8.1算法分析初步 8.2再谈排序与搜索 8.3递归与分治 8.4贪心法 [教学目标] (1)理解"基本操作".渐近时间复杂度的概念和大 ...

  4. 如何学习机器学习、看待算法竞赛?粉丝精选留言

    在前几日的赠书活动中,看到大家的积极留言,非常用心,可以看出对机器学习的热爱.经授权,CV君特意将一些52CV粉丝对学习机器学习.参与算法竞赛的看法.理解与经验放出来,与大家分享,值得收藏细品,希望他 ...

  5. 重磅!DataFountain新上两项CV算法竞赛-32万巨奖等你来拿!

    点击我爱计算机视觉标星,更快获取CVML新技术 这几日,计算机视觉的算法竞赛突然冒出来许多,昨天52CV报道过今日头条新出算法大赛!短视频内容理解与推荐竞赛 ,不少朋友直呼玩不起,少则百万多则上亿的数 ...

  6. DataFountain新上两项CV算法竞赛(文化传承——汉字书法多场景识别、大数据医疗——肝癌影像AI诊断)——50万巨奖等你来拿!

    欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 好消息啦,2019数字中国创新大赛最后四道赛题如期揭幕,其中又有两道计算机视觉赛题,每题均设立16万巨奖,是不是很激动,让我们一起来看 ...

  7. [算法竞赛入门]第一章_算法概述

    1 第1部分 语 言 篇2 3 第1章 程序设计入门4 [学习内容相关章节]5 1.1算术表达式 1.2变量及其输入 1.3顺序结构程序设计6 1.4分支结构程序设计 1.5C/C++编码规范 1.6 ...

  8. 《算法竞赛入门经典——训练指南》第一章相关内容

    #<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...

  9. 【论文翻译】Cluster-GCN:用于训练深度和大型图卷积网络的高效算法

    Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks 聚类GCN:一 ...

  10. 成为计算几何master之路——记算法竞赛中常用的计几算法及思想

    文章目录 成为计算几何MASTER(FAKE)之路 1 引言 1.1 精度 1.2 剖分 1.3 层次化设计 2 点,向量和线 2.1 点积和叉积 2.2 线段(直线) 2.2.1 点在线段上判定 2 ...

最新文章

  1. 《代码大全》阅读笔记-26-代码调整技术
  2. jenkins的使用
  3. java 加减运算_JAVA日期加减运算 | 学步园
  4. VTLN(Vocal Tract Length Normalisation)
  5. Nebula:Slack 的覆盖全球性的开源网络
  6. [css] 浏览器是怎样判断元素是否和某个CSS选择器匹配?
  7. 人物志 | KDD Cup 2017双料冠军燕鹏
  8. linux中断申请之request_threaded_irq 【转】
  9. c mysql日期时间格式_[单选] 妊娠期血液成分发生改变,下述哪项是正确的()...
  10. 子弹短信回应 App 下架;摩拜起诉滴滴;VS Code 1.28 发布 | 极客头条
  11. 关键字:auto、static、register、const、volatile 、extern 总结
  12. 狸猫换太子--删除无头单链表中结点
  13. Spring Cloud Alibaba Seata工作原理
  14. 国外ipv6服务器网站,国外 ipv6 服务器地址
  15. xci转nsp_找不到xci怎么办,自己动手丰衣足食!
  16. 《5G应用“扬帆”行动计划(2021-2023年)》征求意见稿发布
  17. 无线上外网,有线上内网的方式(转)
  18. <JVM上篇:内存与垃圾回收篇>13-垃圾回收器
  19. 【75】颜色分类--荷兰国旗问题
  20. ESP32-C3通过MQTT协议把温湿度上传到阿里云物联网平台

热门文章

  1. 盘点2020年最好用的7款3D游戏建模软件
  2. ruoyi 若依 VUE 宝塔 Nignx部署 伪静态配置
  3. 大数据Hadoop技术的发展历史与未来前景
  4. java 无领导小组面试,无领导小组讨论面试前的准备不包括:( )
  5. css背景图不失真_CSS如何实现这种背景效果?
  6. **python入门实战**-华氏度转摄氏度python代码
  7. win10系统迁移至SSD
  8. 如何防止短信API接口遍历
  9. 运算放大器的偏置电流
  10. 2016年五一劳动节天津之旅