“嘿,我这暴脾气,你敢说我们数据有问题!看来不教训你一下,就不知道什么是规矩!”赵虎挥着拳头就朝着康博士砸了过去。
孙嘉诚刚要拦下赵虎,但还没等伸出手来,赵虎的拳头就飞了出去。孙嘉诚心想,这下坏菜了,小康这么瘦弱的身子,挨上一拳,肯定要住院了。
“唰!唰!唰!”只见康博士轻轻向后一仰、向左一侧身、再向右一跨步,闪转腾挪间轻轻松松躲过了赵虎的三拳重击。
四人的嘴巴张得大大的,难以置信的夸张神情在脸上停留了一分多钟。
“这怎么可能?!铁锤可算是半个专业拳击运动员,夺过金腰带的,能这么轻松躲过他的重拳,除非是冠军级别的专业选手,不然就没有别的解释了。”马涵惊叹道。
殊不知,康博士曾在zd星球接受过专业的搏斗培训。
“先别管其他的,且让人家说说,咱的数据究竟哪儿有问题?三个博士和一个硕士来来回回验证了十几遍都没发现问题。你?呵呵。。。”张龙把话题引到数据bug上面。
“好吧,那我就先说一个小问题。我刚才打扫实验台的时候,大致扫了一眼你们的数据端口,用的是最简单的fifo缓存算法。这个原则虽然符合人们的惯性思维,具备公平性,并且实现起来相对容易,直接使用数据结构中的队列即可实现。
但是,访问效率比较低。
因此我建议使用lfu算法,为了能够淘汰最少使用的数据,lfu算法最简单的一种设计思路就是利用一个数组存储数据项,用ap存储每个数据项在数组中对应的位置,然后为每个数据项设计一个访问频次,当数据项被命中时,访问频次自增,在淘汰的时候淘汰访问频次最少的数据。
这样一来的话,在插入数据和访问数据的时候都能达到o(1)的时间复杂度,在淘汰数据的时候,通过选择算法得到应该淘汰的数据项在数组中的索引,并将该索引位置的内容替换为新来的数据内容即可,这样的话,淘汰数据的操作时间复杂度为o(n)。
另外还有一种实现思路就是利用小顶堆+ap,小顶堆插入、删除操作都能达到o(logn)时间复杂度,因此效率相比fifo实现方法更加高效。
不过话说回来,lfu算法很少有人使用,因为其中运算环节较为复杂,数据项对应的位置难以掌握,以你们几个现在的水准,还做不倒应用自如。”
“没错,你说的太对啦,我竟无言以对。唯有献上我的膝盖。”说话间,王潮竟然来到康博士面前,用食指和中指比划出了下跪的姿势。
“铁娘子,你还有没有原则?这么快就跟他献殷勤了!”赵虎睁着铜铃般的眼睛吼道。
“他讲的就是对的嘛!我记得我导师曾经讲过lfu算法,说是只有国际顶级的团队才敢用这种超级算法。这种算法如果用的好,运行效率至少能提高一百倍!
而且,我导师也是去参加国际算法高端论坛才得知的这种最先进的算法,所以现在在咱们h国,知道的并不多。”
“就算是他知道,也不能代表他能做到,知易行难,只是说说罢了,逞嘴皮子功夫。”张龙在一旁也按奈不住,插了一句嘴。
康博士微微一笑,缓缓地落座,用力甩了几下手指。
孙嘉诚则双手交叉放置胸前,饶有兴致地欣赏着眼前的一幕。这可是一个十分精彩的打脸过程,想当初自己就是瞧不起康博士,之后就被他震惊到了。现如今这几个活宝就和当时的自己一模一样!也好,让他们见识见识康博士的厉害,以后就服服帖帖了。让康博士来统领这帮人,也就顺理成章了。
见过弹钢琴么?康博士的手指接触到键盘的一刹那,就仿佛音乐家在演奏迷人的乐章,发出清脆悦耳的敲击声。身后的四个人都看傻了。普通人打字速度最快也就120字,专业的打字员也就300字左右,而康博士的速度至少1000字!快的甚至都看不清他的十指,相互交错,变成了模糊的重影。
这还都是最慢的,在zd星球,键盘上的每个按键都装有特殊的感应器,在打字之前都会在手指上戴上特殊的指膜。指膜上装有微型传感器,可以连通至大脑。脑袋里面想到哪个字,手指就会自动敲击对应的按键,不用去费力思考按键的顺序,节省了好多时间。使用这种方法,zd星球的孩童都可以每分钟打出1500字。
康博士虽然没有指膜感应器,但是他经年累月与键盘为伍,早已经练就了与键盘超强的融合度。
“喏,我已经搭好了lfu算法的基本架构,接下来就是实现路径问题了,你们可以选择双重哈希或者put方法。有不懂的问题还可以再找我。”大约过了5分钟,康博士已经基本完成了算法的大部分工作。他回头看了一眼,只见其余四个人傻傻的站在那里,眼睛呆呆地盯着屏幕,愣得出神。
“好家伙,你露的这一手可把他们震住了。瞧瞧,现在还看得入迷呢。走吧,我带你去吃饭。”孙嘉诚笑着把康博士带出了门外,直奔33层的食堂而去。
。。。。。。
8月16日清晨,清云大厦千人会议室。
康博士昨晚一直在忙碌着,眼看着脑海中的想法逐步初具雏形,今天开完会之后回去再加把劲儿,就可以做出成品,心中还有点儿小激动。
“人既然都已经到齐了,那咱就开始吧!”会场主席台上一位领导派头的中年人拿着话筒说道