当前位置: 查字典图书网> 编程> 编程之美> 编程之美—读后感

编程之美—读后感

对“编程之美—读后感”的回应

SwordHoly 2009-12-01 22:30:20

TO 2楼:
用正确性换速度也是一种很常见的想法,更何况正确性又不低,如果你认真
算过的话,k取1000,就算n有10^7,正确性也在95%以上。牺牲一点点的正
确性,而在速度上又得到了巨大的提升,何乐而不为呢?
TO 3L:
我承认那个O(n)的算法空间开销比较大,不过只是提供一种思路而已,好歹也是一种解法。

景天 2009-11-30 09:53:14

一天就看完了,ACMer中也是很牛的了

黑枪王荣格 2009-11-28 18:58:58

TO LS的同学
你找个栈做辅助就行了,每次取一个ID和栈顶的ID比较,相同就压入栈,不同就把取出的ID和栈顶ID都扔掉,如果栈顶为空就压入栈。 这样做的话,把所有ID扫描一次,栈顶的ID就是水王的了,在最坏的情况下时间复杂度也是O(n)


TO LZ
你最后的HASH方法有缺陷,你必须要先为你的方法申请一个大约在O(n)数量级的空间,这没什么,但是你必须要在最后全部遍历一下,而且你要把所有位置都置0,这个算法虽然是O(n)的,但是无疑算法前面的那个系数就比较大了,这两处的时间花费是没有必要的。

Skyler苏椰 2009-11-28 17:37:33

1、书中的算法,认为其复杂度是O(n)并非妥当。因为“找出两个不同的id"这项操作的复杂度上界就已经是O(n)的,最坏情况下要删去n/4对,所以整个算法的复杂度是O(n^2)。

2、基于取样统计的那个算法,当你的k<n时,无法保证得到正确解。在这种情况下,k的上界是n,根据我们对时间复杂性的定义,O(k)与O(n)等价就是等价的。也就是说,当k小于n时,这个损失了准确率的算法,并没有带来效率的提升;而当k等于n时,就变成最一般的算法了。

3、一般算法,就是你下面说的那个O(n)算法,这是求众数的普遍方法,反而是书里的方法不太主流,其复杂度也不优。当然,本书的宗旨是打开思路,展示如何将一个大问题变成小问题,所以也无可厚非。

《编程之美》热门书评


书名: 编程之美
作者: 程之美》小组  | 
出版社: 电子工业出版社
副标题: 微软技术面试心得
出版年: 2008-3
页数: 327
定价: 40.00元
装帧: 平装
ISBN: 9787121060748