ITPub博客

首页 > 应用开发 > IT综合 > 让我们重视程序运行效率 (转)

让我们重视程序运行效率 (转)

原创 IT综合 作者:amyz 时间:2007-10-17 18:46:43 0 删除 编辑
让我们重视程序运行效率 (转)[@more@]

让我们重视运行:namespace prefix = o ns = "urn:schemas--com::office" />

  起初,程序运行效率一直是学习的人们关心的话题。但是随着的飞速发展,“运行效率”这个概念已经在校园和初学者之中淡化,只有在设计商业开发和竞赛时才能看见它的身影。这是我们目前的状况,也是值得大家思考的问题。

有必要改进程序的运行效率吗?

随着计算机硬件的发展,微机的速度越来越快(奔腾4的主频已经上了3G,同步缓存等技术已经得到应用),运行软件的能力也越来越强,似乎程序的运行效率已经不在成为我们关注的焦点。的确,在学校的课堂上,老师几乎没讲过这方面的内容,同学对此也是一知半解;很多书籍也对此不闻不问。难道效率真的不重要了?其实,效率是很重要的,要不然就没有工作效率之说了。初学者认为不重要,那是因为写不出更高效的程序;即使能写出来,也会因为程序太小,而感觉不出上的差别。而在一些嵌入式中,程序的运行效率显得格外重要;小段代码的效率,直接影响到了大型软件的运行速度。所以说,我们很有必要去改进自己的程序,让它能够更快更好的运行。

日常的速算法完全有效吗?

人们日常用的速算法,对计算机来说并不是完全有效的。举个例子:大家都知道从1加到100怎么算:可以1+2+3+…….+100算出5050;也可以用简便的算法:(0+100)+(1+99)+(2+98)+……得到结果也是5050。显然第二种方法更适合人们计算,它的效率比顺序相加快得多,甚至口算就能迅速得到答案。但对于计算机来说,第二种方法并不比第一种快,如果程序编制不当,反而会降低计算速度。所以建议大家,对于一般的数值计算不必考虑用什么速算法,请相信中运算器的能力。

程序算法是关键

(1)选择适当算法

要想提高程序运行效率,改进算法是最关键的。算法是影响程序运行效率的主要因素,在编写不同程序时要选择适当的算法。比如同样是查找算法,在处理不同数据时,效率是不同的,这是就要从中选择一个最好的。还比如,同一问题中可以用栈也可以用队列,这时就要考虑用哪个更好,还要考虑用顺序结构还是链式结构。总之,选择适当的算法是提高运行效率的关键。

(2)善于改进算法

大家一定都学过“冒泡排序”算法,也都会用。不知道有多少人改进过这种“古老”的算法。其实想法很简单,设一个标志位用来表示已经排过序的序列,当下一次比较时跳过这段,就能大大提高排序效率。这只是一个很简单的例子,目的是鼓励大家多多改进已有的算法,多些一些好的算法出来,这是很必要的,因为有时系统提供的语句是用不成的。就拿查询来说,最简单的就是用语句。其实这个语句是很有必要改进的,如果在大型数据库中直接这样写:Select xxx FROM xxx WHILE xxx ,可想而知它的效率有多么低下。所以说,我们要善于改进已有的算法。

(3)一个想法

这是我在改进程序运行效率的一个想法――多运算,少器操作。因为运算是由CPU中的运算器完成的,操作则是要到中,甚至外存中进行。两者相差几个数量级,执行速率当然不一样(虽然看不出来,实际是有区别的)。所以在编程过程中,能直接计算的就直接算,不要把数据移来移去的。

(4)小小的建议

要写出高效的算法,对基本的数据结构一定要理解,对基本的算法一定要熟练掌握。所以建议大家一定要学好数据结构,在不断的实践中提高算法的编制能力,这样你的程序才能更好的高效运行。这里还建议大家看看每期《程序员》的“编程擂台”,那里的程序都是讲效率的。

我写这篇文章的目的不是为了说明什么样的算法效率高,该用什么算法编制程序。而是发动大家一起来关心这个快被时代冷落的话题,让我们重视程序运行效率,把编程进行到底。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-977265/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3982
  • 访问量
    7512786