Quote:
引用第20楼lyly于2007-04-22 15:44发表的:
楼主的算法没有看懂,不过如果是o(1)的空间复杂度,且是o(n)的时间复杂度
我就挺佩服的了,算法导论上也有o(n)的算法,不过当时没想到那个算法,只好自己想了,
不过感觉自己的方法应该没有问题,最坏只要遍历三次,不用交换数据。
不过o(n)的时间复杂度常系数必须要小,因为计算机每秒只能处理10^8次对于10G的数据
执行一边就需要1分钟所以有些o(n)的算法也不可取哈
就是算法导论上面的那个select算法啊~~~只不过使用改进后的select算法可以把最差的效率提升到O(n)而已~~
现在的处理器是10亿/秒级别的~~~例如我的机器Athlon64 3200+~~对应3200MHz的Pentium4的水平~~
(存在假设:一个时钟周期执行一条简单指令,利用流水线技术等优化措施~)
1分钟处理10G数据,瓶颈不在CPU,而在于硬盘~~你看一下数据传输速度就知道了~~现在的单个硬盘也就60MB/s~
只有使用SAN或者RAID技术~~
[ 此贴被zc1984在2007-04-22 15:52重新编辑 ]