超过O(n)时间复杂度的算法都是在耍流氓

不羁岁月 提交于 2020-12-18 01:59:45

超过O(n)时间复杂度的算法都是在耍流氓,借着机器性能好,你就可以不考虑算法复杂度了?就可以 O(n^2),O(n^3)嘛。。。

什么狗屁数学,什么狗屁学术,就是你自己编码水平太滥,才需要更强大的硬件。

一台服务器你用了不爽,要用十台。。要用千台。。干呀。。

你要1TB的传输量,一台机器硬盘IO怎么也得80-100MB/s, 1TB除下不就好了。 用这么多硬盘就行。为毛要比这个多得多的硬件。。。

还有CPU和内存,老是想码几十万行代码,我靠,那种功能,几万行就能解决好了,而且还用更高效的算法,O(logn)就搞定,你非要整个o(n^2),试问你是在应用,不是在学习。。。

还有,你想要效率,又不想学C,天天搞Java,你搞毛线呀。。。   

Java动不动就几MB,几十MB的内存占用。。各种虚拟资源,你看C。。程序很小很小,3000行的代码,只有100KB。。。。  1MB得要多少行C代码。。而内存占用,从不含糊,需要多少就用多少,不会多一点乱用的内存。。。


还有现在开源好多也是这种风气。。。不考虑高性能。。  一秒种,插入10万次到磁盘,很艰难。 而要做到一秒插入30万条(78字节一条)磁盘,更难。

一般的开源软件,能到一万条就不错了。。。

哎,开源的东西,好多把高性能给放弃了,就算用了高性能,也需要大量的硬件,如:Hadoop。

memcached,内存里的数据库,竟然,一秒只能插入10万条,硬盘速度是80-100MB/s,能插入30万条每秒,内存速度是18GB/s, 难道,你memcached不应该插入更快点嘛?用那么多资源去计算,申请那么多临时变量。访问那么多次内存。这就是在减速! 这是罪过。

不吐不快,所谓的业界内的高性能?在开源,哪里有。

在喷Linux,都知道,Linux的驱动,核心是链表组织的,假如一台机器有千台设备,那访问得有多慢。。

如果有万条。。这时间复杂度,就是O(n),有十万个设备的机器,别活了,像:高达这种机器人。应该很轻松有10万个设备,驱动的组织方式,还是变成红黑树吧。  不过这个结构,占时还是Linux内存的子系统在用。

众多的人,受到业界某些所谓的大牛的影响,写些很糟糕的算法。做糟糕的数据结构。

记得有个人这么说:当N很小的时候,使用o(N)和使用o(logn)的区别不会很大,可是,如果业务需要N突然增加几个数量级怎么办? 程序使用了o(N),这个怎么改。改的代价是多少。。

还有KISS,这个原则,有的时候真得就在起反作用,KISS到极限的代码,很容易就会使用糟糕的算法,糟糕的数据结构,个人经验认为,KISS应该保持一个复杂度,但这个复杂度又要能考虑到业务将来的数据量级的上升。








易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!