“珠玑之椟”系列简介与索引
系列博文主要目的:
收集《编程珠玑》和《编程珠玑(续)》(以下简称《续》)上的算法和思想,并包括了一些自己的思考和对相关问题的引申,以备复习和查用。
内容提要:
主要是算法收集,结合了《程序设计实践》 (Practise of Programming)、《编程精粹:编写高质量C语言代码》(Writing solid code)和《算法导论》的部分相关内容,以及自己的思考,无论你是否看过原书,都能够帮助你快速理解以至于能够独立完成这些算法。我相信自己写的解释比原书详细而易于理解,并且根据我的经验,对很多问题进行了扩展,这也是这个系列命名为“珠玑之椟”的原因。当然,“买椟还珠”是不可取的,这个系列虽然收录了绝大部分有价值的内容,但部分和话题相关但和算法关系不大的有趣内容限于本人时间有限,只好舍掉。建议时间富足的读者尽量阅读原书,并把这个系列的博文当做参考资料。
出自于《编程珠玑》和《续》原书的算法题和习题有标示。
本系列博文已经写完,预计1~3天发布一篇,目前(2013.7.8)已发完。
索引链接:
字符串和数组算法:左移、哈希表、最长重复子序列的后缀数组解法、最大连续子序列
原书有但未收录的内容介绍:
1.基础的数据结构
二分查找树
2.较少使用的数据结构
箱
3.基本的排序
插入排序、希尔排序、快速排序
4.堆和优先级队列
个人更倾向于使用《算法导论》上介绍的版本
5.马尔科夫链文本生成器
利用马尔科夫链的性质,经过文本训练,能够产生一段自然的随机文本的程序。
与《程序设计实践》相比,由于使用了更精巧的数据结构,占用空间较少,但也更难理解。
6.以二分查找(第9章)和质数查找(《续》第1章)为例的代码调优
7.位排序算法
类似strcmp(),可查阅习题11.5
8.拓扑排序
第2章,伪代码:
initialize a queue to empty
for each node i
if pre count of i is 0
insert i to queue
while queue is not empty
delete t from the front of queue
print t
for each successor s of t
decrement pred count of s
if the count is 0
insert s to queue
《算导》上的拓扑排序比这个略难理解一些,因为它为了说明,引入了结束时间的概念。
9.关联数组
介绍的是Awk语言的特性,如今的C++里的map容器还有像Python里的字典有类似的作用。
10.以牛顿迭代法为代表的数值分析(《续》第14章)
作者:五岳
出处:http://www.cnblogs.com/wuyuegb2312
对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)