既熟悉又陌生的“迪杰斯特拉”

简介:        最近看一些专业课的书籍,在不同的书本上看到了Dijkstra(迪杰斯特拉)这个名字;可以毫不夸张地说,凡是学信息相关专业的学生都应该听说过他的名字(课堂上曾提到的“迪杰斯特拉算法”就是他提出来的,在考试中也经常遇到)。
       最近看一些专业课的书籍,在不同的书本上看到了Dijkstra(迪杰斯特拉)这个名字;可以毫不夸张地说,凡是学信息相关专业的学生都应该听说过他的名字(课堂上曾提到的“迪杰斯特拉算法”就是他提出来的,在考试中也经常遇到)。但是,除了这个之外,大家对他的了解应该是很少的,所以,我认为他是我们“最熟悉的陌生人”。对于这位“陌生人”,我深感好奇,于是上网查找了一些有关这位计算机科学家的资料。在此,与大家分享,也算是对这位大师的贡献表示认可吧。

 

       首先说一下他出现在我们课本上的哪些地方。第一,在《计算机网络》(谢希仁编著,第五版)教材的第152页出现了Dijkstra提出的“最短路径算法SPF”,不过,在此作者没有详细介绍该算法,而是在本书配套的光盘中进行了详述;第二,在《算法设计与分析》(陈慧南编著)教材的第124页出现了Dijkstra提出的单元最短路径算法—“迪杰斯特拉算法”,在此作者详细介绍了此算法,其主要思想是用“贪心法”来求最短路径;第三,在《操作系统教程》(黄刚、徐小龙、段卫华编著)教材的第76页,出现了Dijkstra提出的信号量与P、V操作机制,为在操作系统中进行并发进程的分析奠定了基础。

 

       看来,Dijkstra是经常与大家“见面”,并且也被经常放在了考卷中,我想大家对他可能是又爱又恨吧。

 

       同时我也上网搜了一下有关他的资料,以下作简要的说明。

 

        Dijkstra全名为Edsger Wybe Dijkstra(1930/5/11~2002/8/6),是荷兰人。他是20世纪最伟大的计算机科学家之一,曾获1972年图灵奖,与D. E. Knuth(高唐纳)并称为20世纪最伟大的计算机科学家。他的主要贡献有如下几个方面:1)提出“goto有害论”;2)提出信号量和PV原语;3)解决了有趣的“哲学家聚餐”问题;4)最短路径算法(SPF)的创造者;5)第一个Algol 60编译器的设计者和实现者;6)THE操作系统的设计者和开发者。可以看出,他的一生对计算机科学的贡献极大,值得我们学习。

 

       我国著名计算机专家王选院士在Dijkstra逝世后,发表了一篇文章《从Dijkstra谈帅才的洞察力》来纪念这位大师。在文中,王选院士缅怀了先驱Dijkstra的历史功绩,并对中国计算机产业的发展提出了看法。Dijkstra被西方学术界称为“结构程序设计之父”和“先知先觉”,他一生致力于把程序设计发展成一门科学。王选院士对Dijkstra的洞察力(Vision和Insight)很是敬佩,并举了几个例子来说明。例如,他解决编译系统中的关键问题,提出了同步进程的协调和操作系统的结构,论证了“GoTo语句有害“和结构程序设计等。同时,Dijkstra实践了“吾爱吾师,但吾更爱真理”这句话,为了坚持真理,他不惜反对恩师。这体现了一个科学家的基本素质,那就是不惧权威,真理为上。他的一些名言警句至今也很有现实意义,如:“有效的程序员不应该浪费很多时间用于程序调试,他们应该一开始就不要把故障引入。”以及“程序测试是表明存在故障的非常有效的方法,但对于证明没有故障,调试是很无能为力的。”等。

 

      “追逼圣贤,乃是读书人的本意”,在20世纪计算机科学的发展前途尚不明朗之时,Dijkstra能够洞穿其发展,致力于理论和应用的研究,其远见与智慧不得不令人惊叹;在与导师科学观点不和时,他能够坚持真理,其人品与胸怀确实让人敬佩。现在我们有许多人感叹自己资质不好,或是周围的环境太差,因此过着“做一天和尚撞一天钟”的生活。以上这些干扰不过是一些外界因素,真正对自己一生的发展起作用的是个人的看法、是个人的选择。有人说得好,我们感觉伟人们太伟大,自己不敢仰望,那不是因为他们太高大,而是因为我们自己认为自己太渺小了!李开复老师也说过,做任何事情我们都要反复叩问自己的内心,向人生更远的方向看去,而不是被眼前的喧嚣所迷惑!

 

       向Dijkstra学习!

既熟悉又陌生的鈥湹辖芩固乩

目录
相关文章
|
7月前
|
算法 前端开发
每天一算法,脑子不生锈(真押韵)
每天一算法,脑子不生锈(真押韵)
|
5月前
|
算法 程序员 Python
算法小白到大神的蜕变之路:Python分治法、贪心、动态规划,一步步带你走向算法巅峰!
【7月更文挑战第9天】探索算法之旅,以Python解锁编程高手之路。分治法如二分查找,将复杂问题拆解;贪心算法解决活动选择,每次选取局部最优;动态规划求斐波那契数列,避免重复计算,实现全局最优。每一步学习,都是编程能力的升华,助你应对复杂挑战,迈向算法大师!
48 1
|
5月前
|
算法 索引 Python
逆袭算法界!Python分治法、贪心算法、动态规划深度剖析,带你走出算法迷宫!
【7月更文挑战第8天】分治法,如快速排序,将大问题分解并合并解;贪心算法,选择局部最优解,如活动选择;动态规划,利用最优子结构避免重复计算,如斐波那契数列。Python示例展示这些算法如何解决实际问题,助你精通算法,勇闯迷宫。
50 1
|
5月前
|
算法 开发者 Python
惊!Python算法界的三大神器:分治法、贪心算法、动态规划,让你秒变算法大师!
【7月更文挑战第8天】在Python编程中,分治、贪心和动态规划是核心算法。分治如归并排序,将大问题拆解并递归求解;贪心算法针对找零问题,每次都选最大面额硬币,追求局部最优;动态规划则通过记忆化避免重复计算,如斐波那契数列。这些算法巧妙地提升效率,解决复杂问题。
54 0
|
7月前
|
算法 搜索推荐
常用算法复杂度速查表,蹲坑的功夫都能背
常用算法复杂度速查表,蹲坑的功夫都能背
22 0
|
算法 JavaScript 前端开发
会一会改变世界的图算法——Dijkstra(狄克斯特拉)算法
狄克斯特拉算法是非常著名的算法,是改变世界的十大算法之一,用于解决【赋权】【有向无环图】的【单源最短路径】问题。
|
算法 NoSQL 数据挖掘
工程师应该学点算法——图论2
工程师应该学点算法——图论2
工程师应该学点算法——图论2
|
存储 算法
一文足矣——动态规划经典之Floyd(弗洛伊德)算法
一文足矣——动态规划经典之Floyd(弗洛伊德)算法
255 0
一文足矣——动态规划经典之Floyd(弗洛伊德)算法
|
算法 搜索推荐
基础的手撕算法题
《基础系列》
79 0
|
算法 搜索推荐