频道栏目
读书频道 > 软件开发 > c语言 > Objective-C程序设计入门与实践
6.1 认识算法
2015-11-20 16:26:31     我来说两句
收藏   我要投稿
《Objective-C程序设计入门与实践》详细介绍了Objective-C语言和苹果iOS、Mac平台面向对象程序编程的知识;结合独特的学习方法,在每章都合理嵌入大量的范例,让本书更适合于读者学习和课堂教学。如果你对iPhone  立即去当当网订购

最早了解算法是在大学学C语言的时候,当时使用的是谭浩强先生编写的《C程序设计》教材,其中有一章在介绍算法概念的时候,介绍到Nikiklaus Wirth提出的公式:

数据结构+算法=程序

在以后的国内一些书籍介绍算法,陆续衍生出不同的公式:

程序 = 数据结构 + 算法

程序 = 算法 + 数据结构

程序 = 数据结构 + 算法 + 程序设计方法 + 语言工具与环境

程序 = 算法 + 数据结构 + 程序设计方法 + 语言工具和环境

对这些,笔者总感觉有些不准确,但又说不出个为什么,后来看到通过网络查询,才逐渐有所明白。《C程序设计》教材中提到的Nikiklaus Wirth公式是一种不恰当的表达方式,且最早提出算法这种思想观念的应该是来自“结构化程序设计思想”,而提出“结构化程序设计思想”主要是Edsger W. Dijkstra (1930-2002)(Netherlands,Turing Award(1972))和Niklaus E. Wirth (1934- )(Switzerland,Turing Award(1984))两位大师。当然,后来Robert W. Floyd、Tony Hoare、David Gries等大师均对“结构化程序设计”理论进行了进一步地完善。

1969年,E. W. Dijkstra首次提出了“结构化程序设计”(Structured Programming)的概念。在文章《Edsger Dijkstra, Notes on Structured Programming》有详细的介绍,如果想看原始的文档,可以通过网
址“https://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF ” 查阅到。

1971年4月,Niklaus E. Wirth在《Communications of ACM》上发表了“Program Development by Stepwise Refinement” (Niklaus Wirth. Program Development by Stepwise Refinement. Reprinted from Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227.),提出“通过逐步求精方式开发程序”的思想。

但由于当时Edsger Dijkstra在投稿时,Niklaus E. Wirth恰好是编辑(Editor),因此,许多人将首次提出了“结构化程序设计”概念的功劳都记在了Niklaus E. Wirth名下(同样,网上关于“提出结构化程序设计这一革命性概念而获得了1984年的图灵奖”之类的“传说”比比皆是)。关于这一点有2001年Edsger Dijkstra的手稿为证( https://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1308.PDF ),或参阅https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:概述
下一篇:6.1.1 什么是算法
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站

世界杯外围投注官网