适合大学生学习的编程算法书,推荐给你

首先推荐斯坦福大学经典视频课集结成书的《算法详解》卷1和卷2。在作者的网站上,你可以看视频、对作业答案,与来自世界各地的同学进行讨论,因为小编推荐的书就是国外大学生的算法课,刚好适用于大学生来学习。

算法详解 卷1 算法基础

适合大学生学习的编程算法书,推荐给你

本书对以下4个主题进行了介绍。

渐进性表示法为讨论算法的设计和分析提供了基本术语。它的关键概念是大O表示法,这是一种用于衡量算法的运行时间粒度的建模选择。我们将会看到,清晰的高层算法设计思想的一大优点就是可以忽略常数因子和低阶项,把注意力集中在算法的性能与输入长度之间的关系上。

算法设计中不存在万能的捷径,不存在适用于所有的计算问题的一种解决问题的方法。但是,还是存在一些通用的算法设计技巧适用于一定范围内的不同领域。在本系列的第1卷中,我们将讨论“分治”技巧。分治法的思路是把一个问题分解为几个更小的子问题,然后递归地解决这些子问题,并把它们的解决方案快速组合在一起形成原始问题的解决方案。我们将讨论用于排序、整数乘法、矩阵乘法和基本的计算几何学问题的快速分治算法。我们还将讨论主方法,它是一个强大的工具,用于分析分治算法的运行时间。

随机化算法在运行时采用了“掷硬币”的方式,它的行为取决于掷硬币的结果。令人吃惊的是,随机化常常能够带来简单、优雅且实用的算法。其中一个经典例子是随机化的快速排序(QuickSort)算法,我们将详细介绍这个算法并分析其运行时间。我们还将在《算法详解》系列的第2卷看到随机化算法的进一步应用。

作为前3个主题研究的附加成果,我们将学习几个著名的排序和选择算法,包括归并排序(MergeSort)、快速排序和线性时间级的选择(包括随机化版本和确定性版本)。这些算法具有令人炫目的高速度,以至于它们的运行时间较之读取输入所需要的时间并没有多出很多。创建类似这样的“低代价基本操作”集合,既可以直接用它来操作数据,也可以将其作为更困难问题的解决方案的基本单位。

算法详解 卷2 图算法和数据结构

适合大学生学习的编程算法书,推荐给你

本书介绍了下面3个主题的基础知识。

图可用于对许多不同类型的网络,包括道路网、通信网络、社交网络,以及任务之间的依赖性网络进行建模。图可能非常复杂,但图存在一些运算速度非常快的基本算法。我们首先讨论对图进行搜索的线性算法,其应用范围极广,包括网络分析以及任务序列化等。

在最短路径问题中,其目标是计算网络中从点A到点B的最佳路线。这个问题具有一些显而易见的应用,例如计算行车路线等。许多更为通用的规划问题的本质就是计算最短路径的问题。我们将对其中一种图搜索算法进行归纳,进而引出著名的Dijkstra最短路径算法。

本书将帮助读者熟悉几种不同的数据结构,它们用于维护不断变化的具有键的对象集合。我们的基本目标是培养一种能力,也就是能够判断哪种数据结构比较适合自己的应用。选读的高级章节对如何从头实现这些数据结构提供了一些指导方针。

我们首先讨论堆,它可以快速识别它所存储对象中具有最小键值的对象,适用于排序、实现优先队列以及以线性时间实现Dijkstra算法。搜索树可以维护它所存储对象的整体键顺序,并支持更丰富的数组操作。散列表对超级快速的查找方式进行了优化,在现代程序中具有极其广泛的应用。我们还将讨论布隆过滤器,它是散列表的“近亲”。布隆过滤器的空间需求较散列表更低,但它偶尔会出现错误。

关于本书内容的更详细介绍,可以阅读每章的“本章要点”,它对每一章的内容,特别是那些重要的概念进行了总结。书中带星号的章节是难度较高的章节。时间较为紧张的读者在第一遍阅读时可以跳过这些章节,这并不会影响本书阅读的连续性。

再来推荐经典算法书

编程珠玑 第2版

适合大学生学习的编程算法书,推荐给你

多年以来,当让程序员推选喜爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师乔恩·本特利以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上*受欢迎的专栏,*终结集为两部计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。

在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

也欢迎大家在评论区回答你推荐的算法书。

展开阅读全文

页面更新:2024-05-06

标签:算法   珠玑   数据结构   线性   程序员   计算机科学   详解   路径   解决方案   适合   快速   时间   大学生   方法   章节   经典   科技   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top