这次不喷了,但说说编程语言性能误区

中山野鬼 发布于 2013/08/17 14:10
阅读 366
收藏 1

今天翻点排序的资料。看了个帖子,原帖内容如下:

http://www.cnblogs.com/zhangchaoyang/articles/2234815.html

结论是如下,首先说明这个结论有问题,结论如果增加使用特定“创建的栈”和“栈操作”的约束,可以算描述性正确

“可以看到非递归的算法比递归实现还要慢。。。。。”

一个回复是亮点

stl的stack性能肯定比系统的stack性能要低,所以你实现的非递归算法才要比递归算法慢。我使用自己实现的简单的stack实现的非递归算法就要比递归算法速度快。”

为什么我说很多高级语言,连存储区在哪都不知道(其实不需要知道),就喷性能(其实不需要喷性能),是扯淡。

原帖主人写代码已经算认真了。结果还搞出个截然相反的结论。

还是那句话,你不在直接组织存储空间并将这种逻辑嵌入到你的设计逻辑中,就不要提效率。这和编译器没有毛关系。即便是c++的stl,它的综合效率比c高,其实综合效率也比汇编高,不过是因为考虑了开发速度。

原型或者不考虑效率的编程语言,真的没必要纠结这些。比来比去毫无意义。你这样比,等真的代码来了,而不是算法的原子操作构建在别人提供给你的”复杂”的模块上时,一切都会是浮云。

就是c,dsp的手工汇编普遍比厂家提供的优化编译器编写的c速度快4。最高我写过10倍以上的。

除非你真的要走泥泞的路,否则买个牧马人就是觉得自己屁股&蛋不够疼。。

而不是真的面向具体实现的算法优化,更多实际是在谈策略,也不要扯快或慢,更多扯扯理论上计算次数的降低。就够了。

补充说以下,wiki上的讨论,也是纯策略和理论的。地址如下:

http://zh.wikipedia.org/wiki/快速排序

它只是讨论了额外数据空间,并没有讨论递归需要的堆栈空间。如果照这个写成非递归,还是存在额外空间。

加载中
0
修改登录密码
修改登录密码
读的很不通顺
0
iSea
iSea
我喜欢段首顶格。。。哦,看着会爽些
返回顶部
顶部