简洁代码一定比复杂代码效率高吗?

    春节期间,一个正在读计算机系大四的朋友到我这里聊天,谈到C语言的学习时,他说C语言入门容易,精通很难,我表示赞同。他接着举例说,每次写一些函数,自己反复修改后,拿给同学们看时,不是被挑出一些毛病,就是代码被大量精简。我说,初学者首要的是要保证代码的正确性和可读性,代码写多了后,问题自然少了,代码也较简洁了,效率也会随之提高。后来我问他,实现同样功能,简洁代码一定比复杂代码效率高吗?他想了一下说,还得看算法,如果算法相同,简洁代码效率应该高些吧?!我笑了笑说,高效的算法固然效率高些,但即使算法相同,简洁代码也不见得比复杂代码效率高,现在时兴空间换时间,应尽可能减少循环的使用,特别是少用多重循环,或者尽可能在一个循环中做更多的事。聊到最后,我在计算机上给他看如下两段代码:

    我说,这是C语言初学者最熟悉的计算字符串长度函数,版本一是经典写法,应该算是简洁的了;版本二是我按BCB2007的strlen汇编函数改写的,看起来相当复杂,你说那个版本效率更高些?

    他琢磨了很大一会说,版本二构思相当巧妙,循环次数比版本一大大减少,但是循环中的运算量相对过大,而版本一的循环过程中几乎没有运算量,所以版本二的效率应该不会比版本一高多少。

    我叫他将这两段代码抄回去测试一下,他却直接在我的计算机上开始写测试代码,最后的测试结果让他吃了一惊,版本二的平均运算速度居然比版本一高一倍以上。

    他拿起笔和纸,将版本二抄了下来,说是回去后要好好研究一下......

  • 0
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 162
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 162
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值