《算法导论(原书第3版)》一本章注记

简介: 本节书摘来自华章出版社《算法导论(原书第3版)》一 书中的第2章,第2.5节,作者:(美)Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本章注记

1968年,Knuth发表了总标题为《计算机程序设计艺术》[209,210,211]的三卷著作中的第1卷。第1卷引领了现代计算机算法的研究,使之聚焦于运行时间的分析。对这里给出的许多主题,这3卷著作仍然是有吸引力的且有价值的参考书。依照Knuth的说法,“算法”这个词来源于9世纪一位波斯数学家的名字“al-Khowrizm”。

Aho、Hopcroft和Ullman[5]提倡使用第3章引入的记号,包括Θ记号,把算法的渐近分析作为比较相对性能的一种方法。他们还推广了使用递归关系来描述递归算法的运行时间。

Knuth[211]提供了许多排序算法的一种百科全书似的处理。他对各种排序算法的比较包括精确的执行步数分析,这种分析类似于我们这里对插入排序所做的分析。Knuth对插入排序的讨论包括该算法的几种变形。其中最重要的是由D.L.Shell提出的Shell排序,它对输入序列的周期性子序列使用插入排序,结果形成了一种更快的排序算法。

Knuth还描述了归并排序。他提到在1938年就有人发明了一种机械排序装置,能够在一趟内合并两组穿孔卡片。计算机科学的先驱之一J.von Neumann显然于1945年在计算机EDVAC上为归并排序编写过一个程序。

Gries[153]描述了证明程序正确性的早期历史,他把该领域的第一篇文章归功于P.Naur,并把循环不变式归功于R.W.Floyd。Mitchell[256]编写的教材中描述了证明程序正确性的一些更新的进展。

相关文章
|
6月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 218. 天际线问题 算法解析
☆打卡算法☆LeetCode 218. 天际线问题 算法解析
|
算法 C++
【算法竞赛】实现约瑟夫问题的四种方法(附手绘图详解)
【算法竞赛】实现约瑟夫问题的四种方法(附手绘图详解)
170 1
算法导论(第三版)具体算法解析与理解
算法导论(第三版)具体算法解析与理解
|
存储 算法 调度
【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)
【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)
83 0
|
机器学习/深度学习 算法 Java
《八皇后问题》Java数据结构-JavaProject-JavaOJ题集
《八皇后问题》& Java数据结构 & JavaProject & JavaOJ题集
65 0
《八皇后问题》Java数据结构-JavaProject-JavaOJ题集
|
存储 人工智能 算法
LeetCode算法小抄 -- 经典图论算法 之 二分图
LeetCode算法小抄 -- 经典图论算法 之 二分图
|
算法
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
112 0
|
机器学习/深度学习 存储 算法
(建议收藏)一文多图,彻底搞懂Floyd算法(多源最短路径)
在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径。
6432 2
(建议收藏)一文多图,彻底搞懂Floyd算法(多源最短路径)
数据结构上机实践第四周项目5 - 猴子选大王
数据结构上机实践第四周项目5 - 猴子选大王
153 0
数据结构上机实践第四周项目5 - 猴子选大王
|
算法
【算法竞赛进阶指南】棋盘覆盖(二分图最大匹配)
【算法竞赛进阶指南】棋盘覆盖(二分图最大匹配)
142 0