拉登o睡觉 发表于 2012-9-24 17:15:46

2013 百度校招 研发工程师 一道笔试题??

问题在:http://bbs.fishc.com/thread-22394-1-1.html   欢迎踊跃发言!!

涅槃的龙 发表于 2012-11-7 15:00:18

我们首先取20个数组的第一个数据进行比较,取出这20个数里面的最大值。因为数组里面的数据都是降序排列的,所以这20个数的最大值也就是10000个数中的最大值。然后将取出这个最大值的那个数组里面的元素减一。也就是让原来的数值向前顺移动,即array=array……。
重复这个比较500次,取出的500个数应该就是这10000个数里面的最大值……

千亩计者 发表于 2016-8-16 14:53:12

array=array

紫瞰 发表于 2016-8-21 19:55:03

学习一下

游啊游 发表于 2016-8-21 20:16:34

涅槃的龙 发表于 2012-11-7 15:00
我们首先取20个数组的第一个数据进行比较,取出这20个数里面的最大值。因为数组里面的数据都是降序排列的, ...

想法是可以的,但是数组中的元素向前移动会耗费大量时间,n方级的,我的想法是给每个数组安排一个游标,哪个数组中的元素“取出"后就将游标移向下一位,然后参与下一次20个数的比较
页: [1]
查看完整版本: 2013 百度校招 研发工程师 一道笔试题??