《C语言点滴》第14章 进阶之路

本文探讨了C语言编程中的效率问题,指出选择合适算法的重要性,强调不应盲目追求效率而忽视应用环境。作者提出,程序的80%运行时间集中在20%的代码段,即“Hot Spots”,并建议使用工具定位并优化这些代码。此外,文章强调使用“简单的C语言”原则,避免过度设计和不必要的复杂性。对于C语言的理解,作者认为深入学习编译原理有助于从底层理解语言。最后,文章讨论了C语言与C++、C#等语言的关系,以及程序员应如何选择合适的语言和持续学习的方向,强调算法和设计模式的重要性。

第14章 进阶之路

14.1 程序的效率

每个人都希望自己的程序有效率,这无可厚非。就像我们每个人都希望自己能够漂亮一点儿一样。如果你是一个演员,漂亮对你来说至关重要。不过如果你是一个在荒岛上的程序员,那么很明显,能上网要比漂亮更有意义。希望程序有效率,这没有错,但是别忽视了应用环境。首先要问自己一个问题:“我的程序是否是时间敏感的?”

如果我用非常简单明了、直接的程序可以解决相应的问题,是否就不满足效率的要求了?千万别忘了,计算机干别的真不行,但是计算起来真的很快。

举例来说,一个包含一万个词的词典,满足用户基本的增加、删除和查找功能,你用最低效的数组和最高效的红黑树,对于最终的用户来说,根本感觉不到差别。

唯一的差别就是,对程序员来说,用红黑树实现,代码更多,开发周期更长,开发成本更高,代码更易出错。所以,在关注程序的效率问题之前,你首先要从面临的问题出发,问一问自己,效率是不是这个程序的瓶颈所在。完全不考虑对应的应用,只是在堆砌自己所学的知识,这个在《重构:改善既有代码的设计》[13]一书中有一个非常专业的称呼,叫“过设计”。

如果处理的问题数量级很大,或者是工业控制类时间敏感性程序,那么就不能简单地忽略效率的问题了。程序的效率归根结底在算法上,一个计算复杂度是O(n2)的算法,无论多么精巧地来实现,无论应用多少提高效率的小窍门,效率也不会高过一个复杂度为n 的算法。这个问题出在根本上,就像你是老鼠王国里的冠军,也毕竟是个老鼠,也会被一只哪怕最瘦弱的狮子杀死。所以如果我们探讨程序的效率,第一个问题就是要选择合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人民邮电出版社有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值