刘育刚
吕光楣老师是我在船院上学时的老师,后来我们又成为了同事。他离休前主讲“数据结构”和“算法设计与分析”,每当我遇到算法方面的疑难,总要向他请教。吕老师与我有师生之谊,他也总像上世纪50年代给我们上课时那样认真和耐心。上周我打电话询问是否有“求n中取m的所有组合”的现成算法,吕老师说只有编程序解决。第二天上午当我费劲地琢磨
算法时,吕老师来电话说他已排好了程序。我正为老师的程序能力惊异时,又听到了使我激动不已的一句话:“整个程序只用到了指针和置换,真有一种程序的美!”
说到美,多数人立刻会想到艺术,其实科学同样有美。欣赏艺术的美会使我们感到愉悦;欣赏科学的美,会使我们在欣喜之外还产生一种对科学伟大内涵的深入思考。
程序理论是计算机科学的重要内容,程序是计算机科学工作的一种产品。像艺术品一样,并不是所有的计算机程序都是美的。一位大书法家的作品无疑很美,但是他刚学会写的头几个字,恐怕与美不沾边。编程序和学书法是一个道理,一个刚学会编程的学生恐怕不会编出优美的程序。如果不了解程序设计方法学方面的知识,也就不会知道什么是程序的优美。仅仅学会语法与成为一名优秀的程序员之间还有很长的路。还要学习有关的程序理论,还要不断的实践,仔细的琢磨,用心编好每一个程序。经过多年的锻炼,有了一定的功夫,我们的程序就不会是枯燥无味使人心烦的一串串符号,而是一种优美和高雅的艺术品,供我们应用,供我们欣赏了。
计算机科学家沃思曾有一个说法:“算法+数据结构=程序”。程序的美主要在于算法的美和结构的美。算法美表现为简洁、流畅、分明和新颖。结构的美表现为清晰、和谐、平衡和易懂。
吕老师在算法和结构两方面都有相当的造诣,如今仍以古稀之年正在编制一套计算机专业的教学演示软件,程序能力自然高超。我永远是他的学生。对“求n中取m的所有组合”问题,我也编了一个程序。但由于算法不当,程序缺乏良好的结构,运行时间拖的也很长。而吕老师的程序仅用一个循环,循环体内仅用三个条件语句就解决了全部问题。真使人拍案叫绝,他的程序确实有一种程序的美。
“爱美之心,人皆有之”。一个从事科技工作的人,在追求艺术美的同时,更应不断追求科学美。同样,一个计算机软件人员,在追求艺术美的同时,也应为美的程序而不断努力。