关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷组成了程序设计理论和实践的惟一的珍贵源泉,无数读者都赞扬Knuth的著作对个人的深远影响。科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员们已经成功地应用他的“菜谱式”的解到日常问题上,所有人都由于Knuth在书中所表现出的博学、清晰、精确和高度幽默而对他无比敬仰。
为开始后续各卷的写作并更新现有三卷中的部分内容,Knuth创立了称作册的一系列小部头的书,定期出版。每一册将包含一部分或多个部分的全新的或修订的内容。最终,这些册的内容将归并成每卷综合的最终版本,而在1962年开始的许多努力将得以完成。
本册主要讨论生成所有树,这个主题与《计算机程序设计艺术》前3卷有着令人吃惊的紧密联系。Knuth在本册中全面地讨论了这个著名的主题,提供了124个新的练习,继续为程序设计打下坚实的基础。同时,本册还论述了组合生成的历史。对几个文明古国及其他国家在这方面的历史进行了透彻的研究和精辟的分析。
《计算机程序设计艺术》(经典计算机科学著作最新版)(第1卷第1册双语版)更新了《计算机程序设计艺术,第1卷,基本算法》(第3版),并且最终将成为该书第4版的一部分。具体地说,它向程序员提供了盼望已久的MMIX,代替原来的MIX的一个以RISC为基础的计算机,并且描述了MMIX汇编语言。
本书是国际算法大师乌迪·曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章:第1章到第4章为介绍性内容,涉及数学归纳法、算法分析、数据结构等内容;第5章提出了与归纳证明进行类比的算法设计思想;第6章到第9章分别给出了4个领域的算法,如序列和集合的算法、图算法、几何算法、代数和数值算法;第10章涉及归约,也是第11章的序幕,而后者涉及NP完全问题;第12章则介绍了并行算法;最后是部分习题的答案及参考文献。本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理归纳证明,揭示了算法设计的基本思想和本质。
本书的组织结构清晰且易于理解,强调了创造性,具有浓郁特色,时至今日仍有其巨大的价值,并且适合作为计算机及相关专业算法和高级算法课程的教材。
计算机科学和经济学在过去的十多年中进行了热烈的交互,产生了新的算法博弈论领域。许多现代计算机科学的核心问题,从大型网络的资源分配到在线广告,都涉及多个自利方个体之间的相互作用。经济学和博弈论为这些问题提供了大量有用的模型和定义。同时,对于传统经济学的许多问题,来自计算机科学的研究又起到了补充作用。《斯坦福算法博弈论二十讲》源于作者在斯坦福大学的算法博弈论课程讲义,旨在让学生和其他新学者快速、方便地了解该领域的许多重要的概念。《斯坦福算法博弈论二十讲》通过在线广告、无线频谱交易和网络管理等案例来说明这些概念,非常适合课堂教授和自学。
本书是《Data Structures and Algorithm Analysis in C》一书第2版的简体中译本。原书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。
在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。
全书特点如下:
●专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法
●介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树
●安排一章专门讨论摊还分析,考查书中介绍的一些高级数据结构
●新开辟一章讨论高级数据结构以及它们的实现,其中包括红黑树、自顶向下伸展树。treap树、k-d树、配对堆以及其他相关内容
●合并了堆排序平均情况分析的一些新结果
本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序。 本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。
在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。
第3版的主要变化:
新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。
修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。
移除两章很少讲授的内容:二项堆和排序网络。
修订了动态规划和贪心算法相关内容。
流网络相关材料现在基于边上的全部流。
由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。
修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。
新增100道练习和28道思考题,还更新并补充了参考文献。
本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些 Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。配套网站 algs4.cs.princeton.edu 提供了本书内容摘要以及相关代码、测试数据、编程练习、教学课件等资源。
《剑指Offer——名企面试官精讲典型编程题(纪念版)》是为纪念本书英文版全球发行而推出的特殊版本,在原版基础上新增大量本书英文版中的精选题目,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解题思路:总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路再动手编程;优化时间和空间效率:读者将学会优化时间效率及空间换时间的常用算法,从而在面试中找到最优解;面试必备能力:总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;综合面试案例:总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为;英文版面试题增补,优选久经欧美知名企业面试考验的经典题目,帮助国内读者开阔视野、增补技能。
《剑指Offer——名企面试官精讲典型编程题(纪念版)》适合即将走向工作岗位的大学生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。
本书是国内外业界广泛关注的7卷本《计算机程序设计艺术》第2卷的最新版。本卷对半数值算法领域做了全面介绍,分“随机数”和“算术”两章。本卷总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系,其中特别值得注意的是作者对随机数生成程序的重新处理和对形式幂级数计算的讨论。 本书附有大量习题和答案,标明了难易程度及数学概念的使用。 本书内容精辟,语言流畅,引人入胜,可供从事计算机科学、计算数学、计算技术诸方面的工作人员参考、研究和借鉴,也是相关专业高等院校的理想教材和教学参考书。
7卷本《计算机程序设计艺术》的第1卷以基本的程序设计概念和技术开始,然后专注于信息结构——计算机内部信息的表示、数据元素之间的结构关系以及如何有效地处理它们,给出了对于模拟、数值方法、符号计算、软件和系统设计的初等应用。书中附有大量习题和答案,标明了难易程序及数学概念的使用。
此新版本增加了几十项简单且重要的算法和技术,并对有关数学预备知识作了大量修改以适应现时研究的趋势。
算法设计,ISBN:9787302143352,作者:(美)克林伯格(Kleinberg,J.),()塔多斯(Tardos,E.) 著,张立昂,屈婉玲 译
作者基于丰富的教学经验,开发了一套全新的算法分类方法。该分类法站在通用问题求解策略的高度,对现有大多数算法准确分类,从而引领读者沿着一条清晰、一致、连贯的思路来探索算法设计与分析这一迷人领域。
本书作为第3版,相对前版调整了多个章节的内容和顺序,同时增加了一些算法,并扩展了算法的应用,使得具体算法和通用算法设计技术的对应更加清晰有序;各章累计增加了70道习题,其中包括一些有趣的谜题和面试问题。
本书十分适合用作算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要读者具备数据结构和离散数学的知识即可。
工业界称为多核的多处理器机器正迅速地渗入计算的各个领域。多处理器编程要求理解新型计算原理、算法及编程工具,至今很少有人能够精通这门编程艺术。
现今,大多数工程技术人员都是通过艰辛的反复实践、求助有经验的朋友来学习多处理器编程技巧。这本最新的权威著作致力于改变这种状况,作者全面阐述了多处理器编程的指导原则,介绍了编制高效的多处理器程序所必备的算法技术。了解本书所涵盖的多处理器编程关键问题将使在校学生以及相关技术人员受益匪浅。
本书特色
本修订版结合2008年第1版出版以来课堂教学和读者反馈的勘误和修改意见,对全书进行了多方面的修订和更新。
循序渐进地讲述共享存储器多线程编程的基础知识。
详细解释当今多处理器硬件对并发程序设计的支持方式。
全面考察主流的并发数据结构及其关键设计要素。
从简单的锁机制到最新的事务内存系统,独立、完整地阐述了同步技术。
给出大量利用Java并发工具包编写的可完全执行的Java实例。
附录提供了采用其他程序设计语言和包(如C#、C及C++的Pthreads库)进行编程的相关背景知识以及硬件基础知识。
人工智能领域正在以超乎人们想象的速度发展,本书赶在人工智能彻底占领世界之前完成编写,实属万幸。
书中收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景。本书从日常工作、生活中各种有趣的现象出发,不仅囊括了机器学习的基本知识 ,而且还包含了成为出众算法工程师的相关技能,更重要的是凝聚了笔者对人工智能领域的一颗热忱之心,旨在培养读者发现问题、解决问题、扩展问题的能力,建立对机器学习的热爱,共绘人工智能世界的宏伟蓝图。
“不积跬步,无以至千里”,本书将从特征工程、模型评估、降维等经典机器学习领域出发,构建一个算法工程师必-备的知识体系;见神经网络、强化学习、生成对抗网络等新科研进展之微,知深度学习领域胜败兴衰之著;“博观而约取,厚积而薄发”,在末一章为读者展示生活中各种引领时代的人工智能应用。
《MySQL技术内幕:InnoDB存储引擎(第2版)》由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2版)》大约重写了50%的内容。《MySQL技术内幕:InnoDB存储引擎(第2版)》从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供绝佳的指导。
《MySQL技术内幕:InnoDB存储引擎(第2版)》一共10章,首先宏观地介绍了MySQL的体系结构和各种常见的存储引擎以及它们之间的比较;接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块的实现原理,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份与恢复,以及InnoDB的性能调优等重要的知识;最后对InnoDB存储引擎源代码的编译和调试做了介绍,对大家阅读和理解InnoDB的源代码有重要的指导意义。
《MySQL技术内幕:InnoDB存储引擎(第2版)》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。
《算法竞赛入门经典》是一本算法竞赛的入门教材,把C/C++语言、算法和解题有机地结合在了一起,淡化理论,注重学习方法和实践技巧。全书内容分为11章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、基础题目选解、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法,覆盖了算法竞赛入门所需的主要知识点,并附有大量习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧。另外,书中包含的各种开发、测试和调试技巧也是在传统的语言、算法类书籍中难以见到的。
《算法竞赛入门经典》可作为全国青少年信息学奥林匹克联赛(NOIP)的复赛教材及ACM国际大学。
本书在介绍算法时,重点介绍用干设计算法的策略.非常与众不同。书中介绍了剪枝搜索、分摊分析、随机算法、在线算法以及多项式近似方案等相对较新的思想和众多基于分摊分析新开发的算法,每个算法都与实例一起加以介绍,而且每个例子都利用图进行详细解释。此外,本书还提供了超过400幅图来帮助初学者理解。本书适合作为高等院校算法设计与分析课程的高年级本科生和低年级研究生的教材,也可供相美科技人员和专业人七参考使用。
第一部分 开始解决问题
第二部分 算法分析
第三部分 算法设计范式
第四部分 一些著名的算法
第五部分 基本数据结构
第六部分 树
第七部分 图
在本书中,作者给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门。学习了这些技术,程序员就可写出优雅高效的软件,同时还能洞悉其中原理。这些技术极为实用,而且其问题本身又非常有趣,有时甚至像猜谜解谜一般,需要奇思妙想才行。简而言之,软件开发者看到这些改进程序效率的妙计之后,定然大喜。
Robert Sedgewick完全重写了他的著作,对它进行了充分的扩展和更新,涵盖了目前重要的算法和数据结构。Christopher Van Wyk和Sedgewick开发的新实现采用的是C++语言,这种实现不仅能够直接地表达算法,而且给编程者提供了实践的方法,以便在真正的应用中测试这些算法。 新的版本提供了很多新算法,而且对每个算法的解释也比以前的版本详细很多。新的版面设计以及详细、富有创意并且具有注释的插图,使本书的表达能力大大地提高了。第三版保留了将理论和实践成功混合在一些的特点,正是这一点,使Sedgewick的著作成为25万多名程序员无价的参考资源。 本书是全卷的前半部分,涵盖了基本的数据结构、排序算法、搜索算法以及它们的相关应用。虽然本书实质上可以用于各种语言的程序设计,Christopher Van Wyk和Sedgewick的实现都采用了C++类和ADT实现的自然对应。
《剑指Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。《剑指Offer:名企面试官精讲典型编程题(第2版)》共分7章,主要包括面试的流程,讨论面试每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解决面试题的思路,总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路,再动手编程;优化时间和空间效率,读者将学会优化时间效率及用空间换时间的常用算法,从而在面试中找到最优解;面试中的各项能力,总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;两个面试案例,总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为。
《算法之美——隐匿在数据结构背后的原理(C++版)》围绕算法与数据结构这个话题,循序渐进、深入浅出地介绍了现代计算机技术中常用的40 余个经典算法,以及回溯法、分治法、贪婪法和动态规划等算法设计思想。在此过程中,《算法之美——隐匿在数据结构背后的原理(C++版)》也系统地讲解了链表(包括单向链表、单向循环链表和双向循环链表)、栈、队列(包括普通队列和优先级队列)、树(包括二叉树、哈夫曼树、堆、红黑树、AVL 树和字典树)、图、集合(包括不相交集)与字典等常用数据结构。同时,通过对22 个经典问题(包括约瑟夫环问题、汉诺塔问题、八皇后问题和骑士周游问题等)的讲解,逐步揭开隐匿在数据结构背后的算法原理,力图帮助读者夯实知识储备,激活思维技巧,并最终冲破阻碍编程能力提升的重重藩篱。
《算法之美——隐匿在数据结构背后的原理(C++版)》适合作为大专院校相关专业学生研习算法与数据结构知识的课外参考书。对有意参加信息学竞赛的读者,本书亦有很强的参考价值。此外,鉴于算法与数据结构在求职过程中常常被视为考察重点,所以就临近毕业的学生或其他欲从事IT 行业的求职者而言,阅读《算法之美——隐匿在数据结构背后的原理(C++版)》也将对面试备考大有裨益。
历史上最伟大的计算机科学著作之一
融深邃思想、实战技术与趣味轶事于一炉的奇书
带你真正领略计算机科学之美
多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。
在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。
本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。
书评
“《编程珠玑》是对我职业生涯早期影响最大的书之一,其中的许多真知灼见多年之后仍然使我受益匪浅。”
——Steve McConnell,软件工程大师,IEEE Software前主编,《代码大全》作者
本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。
本书是国际著名算法专家李德财教授主编的系列丛书“Lecture Notes Series on Computing”中的一本。本书涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用背景,注意用与其他技术比较的方法说明它的特征,并提供大量相应实际问题的例子。本书同时也强调了对每一种算法的详细的复杂性分析。全书分七部分19章,从算法设计和算法分析的基本概念和方法入手,先后介绍了递归技术、分治、动态规划、贪心算法、图的遍历等技术,对NP完全问题进行了基本但清楚的讨论。对概率算法、近似算法和计算几何这些近年来发展迅猛的领域也用一定的篇幅讲述了基本内容。书中每章后都附有大量的练习题,有利于读者对书中内容的理解和应用。
本书结构简明,内容丰富,适合于作为计算机学科以及相关学科算法课程的教材和参考书,尤其适宜于学过数据结构和离散数学课程之后的算法课教材。同时也可作为从事算法研究的一本好的入门书。
本书阐述了用于算法数学分析的主要方法,所涉及的材料来自经典数学课题,包括离散数学、初等实分析、组合数学,以及来自经典的计算机科学课题,包括算法和数据结构,本书内容集中覆盖基础、重要和有趣的算法,前面侧重数学,后面集中讨论算法分析的应用,重点的算法分的的数学方法。每章包含大量习题以及参考文献,使读者可以更深入地理解书中的内容。
本书适合作为高等院校数学、计算机科学以及相关专业的本科生和研究生的教材,也可供相关技术人员参考。
本书是畅销书《MySQL技术内幕:InnoDB存储引擎》的姊妹篇,深刻揭示了MySQL中SQL编程的精髓与奥秘,能为开发者和DBA们利用SQL语言解决各种与开发和管理相关的MySQL难题提供很好的指导和帮助。
全书一共10章,全面探讨了MySQL中SQL编程的各种方法、技巧与最佳实践。第1章首先介绍了SQL编程的概念、数据库的应用类型以及SQL查询分析器,然后介绍了SQL编程的三个阶段,希望读者通过本书的学习能达到最后的融合阶段。第2章全面讲解了MySQL中的各种数据类型和与之相对应的各种编程问题。第3章深入探讨了逻辑查询与物理查询的原理与方法。第4章的主题是子查询,不仅讲解了各种常用的子查询方法及其优化,而且还讲解了MariaDB对子查询的优化。第5章首先详细地分析了MySQL中的各种联接及其内部的实现算法,以及MariaDB数据库中引入的Hash Join,然后针对关于集合的各种操作给出了解决方案。第6章分享了聚合和旋转操作的方法与技巧,并对一些经典的常见问题给出了解决方案。第7章深入阐述了游标的使用,重点在于如何通过正确地使用游标来提高SQL编程的效率。第8章讲解了关于事务的各种编程技巧,同时对事务的分类进行了详细阐述。第9章详细分析了各种索引的内部实现,探讨了如何使用索引来提升查询效率。第10章介绍了分区的方法与技巧,阐明了如何通过分区来进行SQL编程。
无论你是开发人员还是DBA,无论你是需要一本SQL查询手册还是希望系统深入地学习SQL编程,本书都会是不错的选择。
《算法基础》自1997年出版以来深受读者喜爱,已经被翻译成多种语言出版,并成为世界许多高校广泛采用的算法教材之一。书中对算法设计、算法的复杂度分析和计算复杂度进行了恰如其分的介绍。作者用平实的语言和简单的符号介绍了各种抽象的数学概念,既浅显易懂,又不失严谨。为了便于读者理解和记忆,作者还提供了大量的示例,并在附录中介绍了基本的数学概念。
第5版新增了一章,介绍遗传算法和遗传编程,其中提供了理论和实践两方面的应用。此外,这一版还对练习和示例进行了全面更新,并且改进了教师资源。本书可作为本科生和研究生算法课程的教材,也可供程序员及算法分析和设计人员阅读。
算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。
本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法设计的通用策略和算法分析的技术,还附带有不少的实例。谜题部分将谜题按照简单、中等难度和较难三个层级分别列出。提示部分依次给出谜题提示,帮助读者找到正确的解题方向,同时仍然为读者留下了独立求解的空间。答案部分则给出了谜题的详细解答。
本书可以为对算法感兴趣的广大读者提供系统丰富而实用的资料,能够帮助读者提升高阶算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及在准备面试的应聘者和面试官阅读参考。
算法之大,大到可以囊括宇宙万物的运行规律;算法之小,小到寥寥数行代码即可展现一个神奇的功能。算法的应用和乐趣在生活中无处不在:
历法和二十四节气计算使用的是霍纳法则和求解一元高次方程的牛顿迭代法;
音频播放器跳动的实时频谱背后是离散傅立叶变换算法;
DOS时代著名的PCX图像文件格式使用的是简单有效的RLE压缩算法;
RSA加密算法的光环之下是朴实的欧几里德算法、蒙哥马利算法和米勒-拉宾算法;
井字棋、黑白棋、五子棋和俄罗斯方块游戏背后是各种有趣的AI算法;
华容道游戏求解的简单穷举算法中还蕴藏着对棋盘状态的哈希算法;
遗传算法神秘不可测,但用遗传算法求解0-1背包问题只用了60多行代码……
一本书带你走进色彩缤纷的算法世界,让你尽享算法的乐趣。
本书深入Java虚拟机底层原理,对JVM内存管理中的垃圾回收算法G1GC进行了详细解读。全书分为“算法篇”和“实现篇”两大部分:前一部分主要介绍G1GC的算法原理,内容包括G1GC的并发标记、转移功能、软实时性的实现和分代G1GC模式;后一部分聚焦算法篇中没有详细讲解的实现部分,基于HotSpotVM源码,讲解对象管理功能、内存分配器的机制、线程管理方法和G1GC的具体实现。
本书以图配文,通俗易懂,既系统介绍了G1GC的基础算法,又贴近现实,剖析了实用JVM中的G1GC实现,同时还包含了作者对G1GC的研究成果和独到见解,是深入理解JVM和G1GC机制的佳作。
我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。
通过丰富的跨学科研究,作者指出,计算机算法也可以用来解答人类面临的这些问题。这本书告诉我们如何更有效地利用直觉、什么时候应该把选择权交给命运、无所适从的时候应该如何做出选择,以及如何有效地与他人保持联系。从找配偶到找停车位,从组织管理个人邮箱的收件箱到理解人类记忆的作用原理,这本书把计算机科学的智慧转化为人类生活的策略,引导我们做出明智的选择。
本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。本书把算法分析与有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。
《人工智能:一种现代的方法(第3版)》是最权威、最经典的人工智能教材,已被全世界100多个国家的1200多所大学用作教材。
《人工智能:一种现代的方法(第3版)》的最新版全面而系统地介绍了人工智能的理论和实践,阐述了人工智能领域的核心内容,并深入介绍了各个主要的研究方向。全书分为七大部分:第1部分“人工智能”,第II部分“问题求解”,第III部分“知识、推理与规划”,第IV部分“不确定知识与推理”,第V部分“学习”,第VI部分“通信、感知与行动”,第VII部分“结论”。《人工智能:一种现代的方法(第3版)》既详细介绍了人工智能的基本概念、思想和算法,还描述了其各个研究方向最前沿的进展,同时收集整理了详实的历史文献与事件。另外,本书的配套网址为教师和学生提供了大量教学和学习资料。
本书适合于不同层次和领域的研究人员及学生,是高等院校本科生和研究生人工智能课的首选教材,也是相关领域的科研与工程技术人员的重要参考书。
本书是斯坦福-剑桥项目(Stanford-Cambridge ProSram)之一。.
对于许多应用,随机算法是最简单可行的,或者是最快的,或者两者兼得。本书由该领域两位著名专家写成,给出了随机算法设计和分析的基本概念,适用于接近研究生开始阶段的水平。..
本书的第一部分介绍了概率论的基本工具,以及在算法应用中经常使用的概率分析。为了说明每个工具的作用,在具体设置给出了一些算法示例。本书的第二部分为算法的应用,共包括七章,每一章集中在随机算法应用的一个重要领域,如数据结构、几何算法、图算法、数论、计数、并行算法及在线算法等。对于每个领域中的算法,做了全面并且具有代表性的选择。
尽管本书基本按照教材写成,也可作为一本有价值的参考书供专业人员和研究者使用。
人生的十字路口,充满了看似微小、实则关键的选择,刻意选择决定人生成败。
你应该已经喝饱了心灵鸡汤,听够了成功故事,《刻意选择》一书像是一副降噪耳机,已经帮你屏蔽了那些看似正确却没有一点实用价值的建议。
这是一本轻松好读的励志书,旨在引导读者突破惯性思维,从刻意选择与众不同的行为开始改变工作、生活和社交。
畅销书作家罗希特·巴尔加瓦在书中提供了15条简单、实用、易操作的人生算法,助你成功突围人生困局。
那么,要怎么开始呢?
当然,让我们先学会用左手吃饭!
etcd是一个可靠的分布式KV存储产品,由CoreOS公司开发,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。
《etcd技术内幕》主要从源码角度深入剖析etcd,首先介绍etcd的背景知识,如何搭建源码环境及相关的命令。接着从基本的Raft协议开始介绍,帮助读者了解Raft协议的背景、如何处理各种异常场景及相关扩展。然后分析etcd-raft模块对Raft协议的实现,同时介绍etcd自带的raftexample示例,帮助读者了解etcd-raft模块的基本使用方法。《etcd技术内幕》还介绍HTTP编程基础和etcd-rafthttp模块的工作原理及具体实现,以及etcd中如何处理WAL日志文件及快照数据文件,并且详细分析etcd的底层存储,对v2版本和v3版本的存储都做了详细的介绍。最后重点介绍etcd服务端和客户端的相关内容,etcd服务端会组装并协调前面介绍的各个组件,并且在它们的基础上扩展出了更多的功能,此外还详细分析v2和v3两个版本客户端的具体实现。
《etcd技术内幕》适合Go语言开发者,以及对etcd技术感兴趣的读者阅读。
《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书是该系列的第4卷A,书中主要介绍了组合算法,内容涉及布尔函数、按位操作技巧、元组和排列、组合和分区以及所有的树等。
关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。这一册以及刚刚出版的第4卷第2册揭开了人们急切等待的《计算机程序设计艺术第4卷组合算法》的序幕。作为关于组合查找的冗长一章的一部分,这一册开始关于生成所有组合和分划的讨论。在Knuth讨论这两个主题的过程中,读者不仅会看到很多新内容,并且会发现本册与卷1至卷3及计算机科学和数学的其他方面的丰富联系。一如既往,书中包括了大量的习题和富有挑战性的难题。
《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》是《计算机程序设计艺术,第4卷:组合算法》的第0册。《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》介绍了组合搜索历史和演化,涉及组合搜索技术的理论和实践应用,探究了布尔函数相关的所有重要问题,考察了如何最有效地计算一个布尔函数的值的技术。本册是《计算机程序设计艺术的》第7章,即组合搜索一长篇宏论的起始。
《数据挖掘方法与模型》讲述了:当下,由于强大的数据挖掘软件平台很容易获得,草率地使用数据挖掘方法和技术将导致挖掘的结果混淆难解。这种失误往往源自盲目使用“黑盒子”方法进行数据挖掘,而最好的避免途径就是使用“自盒子”方法,理解隐藏在软件背后的算法和统计模型结构。
《数据挖掘方法与模型》分为7章,第1章是对降维方法的介绍,这是数据挖掘技术的一个先决条件;第2章至第6章为经典的数据挖掘算法和技术,包括一元回归模型、多元回归模型、逻辑回归模型、贝叶斯网络分析以及遗传算法,通过实际案例引导读者由已预处理的数据使用不同的挖掘技术从而得出所需结论;第7章为基于数据挖掘过程模型上的多个案例研究,通过多个领域的案例来阐述算法和技术是如何被运用的。
《数据挖掘方法与模型》可作为数据挖掘课程教学用书,适用于高年级本科生和研究生的教学,也可供科研人员参考使用。
《近似算法》系统总结了到本世纪初为止近似算法领域的成果,重点关注近似算法的设计与分析,介绍了这个领域中最重要的问题以及所使用的基本方法和思想。全书分为三部分:第一部分使用不同的算法设计技巧给出了下述优化问题的组合近似算法:集合覆盖、施泰纳树和旅行商、多向割和k-割、k-中心、反馈顶点集、最短超字符串、背包、装箱问题、最小时间跨度排序、欧几里得旅行商等。第二部分介绍基于线性规划的近似算法。第三部分包括四个主题:在一个格中找一个最短向量、计数问题的可近似性、基于PCP定理的近似困难性以及未解决的问题等,这些问题都是近似算法领域中的前沿研究内容。
《近似算法》可作为计算机科学、应用数学、运筹学、信息科学与网络工程、物流与交通运输、管理科学与工程、生命科学、电子科学与技术等学科专业的研究生及高年级本科生的教学用书,对相关领域的科学研究人员也具有参考价值。
《分布式计算:原理、算法与系统》内容简介:分布式计算是指由计算机网络连接的多处理平台的各种形式的计算、信息访问与信息交换。《分布式计算:原理、算法与系统》覆盖了分布式计算中的理论、算法以及系统方面的基本原理和模型。兼顾理论的广度与深度,注重实际,包括了互斥、死锁检测、认证和失效恢复等常见问题。算法经过认真选择,描述清晰,使用简单的解释和图表来说明算法。
本书全面系统地介绍算法设计和算法应用的各个领域,内容涵盖经典数据结构、经典算法、算法分析方法、算法设计方法以及算法在各个领域的应用,还包含一些高级主题。本书采用应用驱动的方法引入各章内容,内容编排清晰合理,讲解由浅入深。此外,各章都附有巩固练习、创新练习和应用练习三种类型的题目,为读者理解和掌握算法设计和应用提供了很好的素材。
本书可作为高等院校计算机及相关专业“数据结构和算法”课程的本科生、研究生教材,也可作为算法理论和实践工作者的参考手册。
计算机复杂理论的研究是计算机科学最重要的研究领域之一,而Chistos.H.Papadimitriou是该领域最著名的专家之一。本书是一本全面阐述计算机复杂性理论及其近年来进展的教科书,主要包含算法图灵机、可计算性等有关计算复杂理论的基本概念;布尔逻辑、一阶逻辑、逻辑中的不可判定性等复杂性理论的基础知识;P与NP、NP完全等各复杂性类的概念及其之间的关系等复杂性理论的核心内容;随机算法、近似算法、并行算法及其复杂性理论;以及NP之外如多项式空间等复杂性类的介绍。
《近似算法的设计与分析》分为五个部分:首先,在第一部分,即第一章,我们简明扼要地介绍NP—完全性和近似算法的概念。在第二部分,也就是第二章,我们对贪婪算法进行深人的分析,包括以次模函数为势函数的贪婪算法和以非次模函数为势函数的贪婪算法。第三部分包含三章:第三章、第四章和第五章。在这三章中我们讨论多种限制方法,其中包含用于处理几何问题的划分和断切方法。第四部分包含第六章、第七章、第八章和第九章。在这四章中我们主要讨论松弛方法。在第六章中我们对松弛方法进行一般性的讨论以后,在紧接着的三章中,讨论基于线性和半定规划的近似算法设计,包括原始对偶方案和与之等价的局部比值方法。在最后一部分,即第十章,我们介绍应用NP—完全性理论的近期成果所取得的各种不可近似性结果。
分布式算法20多年来一直是倍受关注的主流方向。本书第二版不仅给出了算法的最新进展,还深入探讨了与之相关的理论知识。这本教材适合本科高年级和研究生使用,同时,本书所覆盖的广度和深度也十分适合从事实际工作的工程师和研究人员参考。书中重点讨论了点对点消息传递模型上的算法,也包括计算机通信网络的实现算法。其他重点讨论的内容包括分布式应用的控制算法(如波算法、广播算法、选举算法、终止检测算法、匿名网络的随机算法、快照算法、死锁检测算法、同步系统算法等),还涉及了利用分布式算法实现容错计算。第二版新增的关于方向感和故障检测器的内容都代表了当今最新技术发展水平,为在这些方向上从事研究的人员提供了很好的帮助。
本书系统和全面地介绍了组合优化的基本理论和重要算法。全书共分22章,内容既包括图论、线性和整数规划以及计算复杂性等基础部分,又涵盖了组合优化中若干重要问题的经典结果和最新进展。除了对理论的深刻讨论外,书中还提供了丰富的研究文献和具有挑战性的习题。
本书是组合优化领域的重要著作,既可作为研究生教材,也是一本从事组合优化研究的必备参考书。
《深度学习模型及应用详解》作者都是微软人工智能及研究院的研究人员和应用科学家,具有深厚的机器学习背景,在一线针对产品需求和支持的场景进行了大量的深度学习模型及算法的研究和开发,在模型设计、训练、评估、部署、推理优化等模型开发全生命周期积累了丰富的经验。
《深度学习模型及应用详解》分为4 部分,共13 章。其中第1 部分(第1、2 章)简要介绍了深度学习的现状、概念和实现工具。第2 部分(第3~5 章)以具体的实际应用展示基于深度学习技术进行工程实践和开发的流程和技巧。第3 部分(第6~12 章)介绍了学术界和工业界最新的高阶深度学习模型的实现和应用。第4 部分(第13章)介绍了深度学习领域的一些前沿研究方向,并对深度学习的未来发展进行展望。
《深度学习模型及应用详解》面向的读者是希望学习和运用深度学习模型到具体应用场景的企业工程师、科研院所的学生和科研人员。读者学习本书的目的是了解深度学习模型和算法基础后,快速部署到自己的工作领域,并取得落地成果。
本书论述了算法数论的基本内容,其中包括:连分数、代数数域、椭圆曲线、素性检验、大整数因子分解算法、椭圆曲线上的离散对数、超椭圆曲线。本书的特点是内容涉及面广,在有限的篇幅内,包含了必要的预备知识和数学证明,尽可能形成一个完整的体系。并且本书的部分内容曾多次在中国科学院研究生院信息安全国家重点实验室和广州大学作为硕士研究生教材使用。
本书可作为信息安全、数论等专业的研究生教材及相关专业的研究人员、高等学校的教师和高年级学生的参考。
《华章教育·高等学校计算机专业规划教材:算法与数据结构考研试题精析(第3版)》在内容上,对数据结构课程的主要知识点进行了梳理,再按照知识点对试题进行分类讲解,使读者灵活运用知识点并举一反三。题量大、题型多,包括选择题、填空题、应用题、算法设计题等,通过不同类型的练习使读者巩固所学知识。
全书以零基础的读者自学完成一个中文分词系统作为目标。从Java基础语法开始,然后到文本处理相关的数据结构和算法,*后实现文本切分和词性标注。本书是少有的介绍业界热门的Java开发中文分词的书籍。本书选取相关领域的经典内容深入理解和挖掘,也综合了实践性强的创新想法。适用于对软件开发感兴趣的青少年或者大学生。
本站基于Calibre构建,感谢开源界的力量。所有资源搜集于互联网,如有侵权请邮件联系。
Github | Docker | Project
关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷组成了程序设计理论和实践的惟一的珍贵源泉,无数读者都赞扬Knuth的著作对个人的深远影响。科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员们已经成功地应用他的“菜谱式”的解到日常问题上,所有人都由于Knuth在书中所表现出的博学、清晰、精确和高度幽默而对他无比敬仰。
为开始后续各卷的写作并更新现有三卷中的部分内容,Knuth创立了称作册的一系列小部头的书,定期出版。每一册将包含一部分或多个部分的全新的或修订的内容。最终,这些册的内容将归并成每卷综合的最终版本,而在1962年开始的许多努力将得以完成。
本册主要讨论生成所有树,这个主题与《计算机程序设计艺术》前3卷有着令人吃惊的紧密联系。Knuth在本册中全面地讨论了这个著名的主题,提供了124个新的练习,继续为程序设计打下坚实的基础。同时,本册还论述了组合生成的历史。对几个文明古国及其他国家在这方面的历史进行了透彻的研究和精辟的分析。