锁定老帖子 主题:面试遇到大数据量的问题到底在考什么?
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-18
berlou 写道 抛出异常的爱 写道 berlou 写道 Else 写道 就算是人家lz错了,也不用这么挖苦人吧,这么搞,谁敢发贴讨论问题啊
它利用线程拙劣的方式就不说了, 连最基础最直观的错误算法都能贴出来让大家参观, 大家还客气什么? 说出来总比不懂装懂强多 这回不懂下回不就懂了? PS:问题是问题 人品是人品 技术上的事不至于... 人品问题见仁见智。 问题本身来讲, 需要思考。1个深度是10的问题, 你起码有3的思考, 楼主连2都到不了, 甚至简单1的思考就来指导大家一下, 这是误人子弟。 我指出的是他最基本的算法问题, 当作挖苦也好,当作啥都好,能谦虚接受才能进步。不用你来帮着维护。 菜B,是你没理解楼主的思路. 楼主的多线程固然是牵强附会,他的算法没问题. |
|
返回顶楼 | |
发表时间:2010-03-18
iaimstar 写道 看到这里我囧了
我承认我一看下来基本哪个帖子也没看懂 +1 和我一块蛋疼吧。。 |
|
返回顶楼 | |
发表时间:2010-03-18
强强爱妍妍 写道 berlou 写道 抛出异常的爱 写道 berlou 写道 Else 写道 就算是人家lz错了,也不用这么挖苦人吧,这么搞,谁敢发贴讨论问题啊
它利用线程拙劣的方式就不说了, 连最基础最直观的错误算法都能贴出来让大家参观, 大家还客气什么? 说出来总比不懂装懂强多 这回不懂下回不就懂了? PS:问题是问题 人品是人品 技术上的事不至于... 人品问题见仁见智。 问题本身来讲, 需要思考。1个深度是10的问题, 你起码有3的思考, 楼主连2都到不了, 甚至简单1的思考就来指导大家一下, 这是误人子弟。 我指出的是他最基本的算法问题, 当作挖苦也好,当作啥都好,能谦虚接受才能进步。不用你来帮着维护。 菜B,是你没理解楼主的思路. 楼主的多线程固然是牵强附会,他的算法没问题. 我一直奇怪这个帖子怎么有这么多2B冲出来装牛逼人, 我不牛逼, 我比较笨, 我知道用最简单的test case去证明一个算法是不是正确。 既然这么多sb说楼主除了线程外,算法和思路挺好,看来有必要和你们这些人研究研究到底谁是菜比。 test case:(直接忽略线程了) A数组:1, 2, 3, 4, 5 B数组:2, 3, 4, 5, 6 X和Y为大小是3的数组。 z为交集结果集数组 以楼主算法, 第一次, A读出1, 2, 3到x, B读出2, 3, 4到y 这样x = {1, 2, 3}; y = {2, 3, 4} 显然,第一轮z里填充2,3 即z = {2, 3} OK, 接着楼主说“比较完后清空y”。 x = {1, 2, 3}; y = {}; "启动B接着读取写入Y", 接着啥意思?汉语读过小学应该知道从B数组的第四个元素5开始读吧? 好,x = {1, 2, 3}; y = {5, 6} 这样取交集, 结果是空。那么z仍然是[2, 3} "比较完后,清空Y" “文件二操作完成后,再清空X再启动A” 就是说现在 x = {}; y = {} (注,即使理解成y = {5, 6}也没关系) “再清空X再启动A,再重复上面的步骤,直到文件一全部操作完。 ” 则 x = {4, 5} 这时, 如果y是空, 则全部丢弃, 最终结果是z = {2, 3}, 如果y没清空, 仍然是{5, 6}则最终结果是{2, 3, 5} 你这个什么傻逼愿意爱谁爱谁去, 别在这丢人现眼, je你这种人不缺。 |
|
返回顶楼 | |
发表时间:2010-03-18
连最基础的算法都没整明白,再谈大数据量, 空中楼阁么?
很多人看了大数据量和1000w就好象高潮了一样, 都开始“性能”啊, “瓶颈”啊。于是开始解决楼主说到的算法的潜在的性能问题, 首先搞明白一件事, 这算法对不对? 不对的算法还谈什么优化?你们是不是都是那种每天就写点业务代码,连unit test都懒的写的人?出了问题再改, 改了再犯, 千锤百炼? 让我对这个问题写一个前无古人后无来者的高性能算法我差远了,但是让我不会犯这么低级的算法错误。 像什么“爱妍妍”你这种人不管是马甲还是啥,最好别丢人现眼, 要么你就给我论证一下楼主的是算法是怎么正确的, 给我提高一下可怜智商。 |
|
返回顶楼 | |
发表时间:2010-03-18
最后修改:2010-03-18
看了所有的回帖。
对于第一题,很多人说不用多线程,没有体现出多线程的特点,这点我认同,但是楼主使用两个线程的原因,可能不少回帖说循环分片读入的朋友不太明了。我认为,楼主最初的目的就是用一个线程来读数据,同时也是为了保存读入文件的状态,也就是处理了那些数据。这就是楼主所说的线程A的作用,而线程B处理最大最小这个不用说了。对于第一个问题的解决,我也认同楼主的算法很普通,基本上有逻辑思维的人都可以想到,而我比较认同zhangdp_neu 写的解决方法,而lai008这位朋友评论zhangdp_neu的话,不太认同,先不说分批读入的文件状态的保存问题,就是占用的内存也远远比zhangdp_neu的算法差的多的多。 对于第二题,有朋友指出算法错误了,没什么说的。 最后,大家在评论的时候,骂人可以,但请说出骂的理由以及支持理由的证据,我看了很多人在骂,但是不知道骂什么。骂完之后,说出你的思路,让后来的看贴人定论是非。 回来之后,在路上忽然想到了这个问题,觉得第一题的确不用这么麻烦,因为只是求最大最小值,又不是排序。如果是排序,zhangdp_neu的说的算法就不错,如果只是求最大及最小值,lai008这位朋友说的还是在理的。 而第二条题目的算法,我们可以改动一下zhangdp_neu的说的算法,我们设两个一样大小的数组,然后看相应的位置是否都是1,如果是,那么就应该是交集的元素了。 |
|
返回顶楼 | |
发表时间:2010-03-18
最后修改:2010-03-18
berlou 写道 ... “再清空X再启动A,再重复上面的步骤,直到文件一全部操作完。 ” 则 x = {4, 5} 这时, 如果y是空, 则全部丢弃, 最终结果是z = {2, 3}, 如果y没清空, 仍然是{5, 6}则最终结果是{2, 3, 5} 你这个什么傻逼愿意爱谁爱谁去, 别在这丢人现眼, je你这种人不缺。 同学,语文不及格. "再重复上面的步骤"你懂不, 就是让你再从头读取数组B的内容到Y 懂否? |
|
返回顶楼 | |
发表时间:2010-03-18
围观,这算不算是群殴?
|
|
返回顶楼 | |
发表时间:2010-03-18
强强爱妍妍 写道 berlou 写道 ... “再清空X再启动A,再重复上面的步骤,直到文件一全部操作完。 ” 则 x = {4, 5} 这时, 如果y是空, 则全部丢弃, 最终结果是z = {2, 3}, 如果y没清空, 仍然是{5, 6}则最终结果是{2, 3, 5} 你这个什么傻逼愿意爱谁爱谁去, 别在这丢人现眼, je你这种人不缺。 同学,语文不及格. "再重复上面的步骤"你懂不, 就是让你再从头读取数组B的内容到Y 懂否? 感情你在玩文字游戏是不?你的上面上到哪?包括楼主说的所有的话么?这样重复的话, 是无限循环。 不要试图告诉我, 这个”上面“的断点是” A读文件一写入X数组写满A停止,B读取第二个文件写入Y数组写满B停止,这时候C启动,在X,Y两个数组找出交集,大小10000的两个数组怎么找交集这个大家自由发挥总之取到后写入另外个文件中,就当是文件三吧。“这句话中第一个逗号后面的部分, 你这个上也太会“上”了。即使以你这种“上”法, 也应该是“接着读A文件(如果没读过从头读)”, 才能使算法成立。 你要教人语文和语法, 就别弄出一个模棱两可的标准, 你要是上代表上面全部流程, 就把逗号前的带进去, 别以你的意思去断句。 拜托你还是省省, 别2b呵呵的在这现眼。 |
|
返回顶楼 | |
发表时间:2010-03-18
抛出异常的爱 写道 berlou 写道 Else 写道 就算是人家lz错了,也不用这么挖苦人吧,这么搞,谁敢发贴讨论问题啊
它利用线程拙劣的方式就不说了, 连最基础最直观的错误算法都能贴出来让大家参观, 大家还客气什么? 说出来总比不懂装懂强多 这回不懂下回不就懂了? PS:问题是问题 人品是人品 技术上的事不至于... 很多人心态有问题,就算LZ的不对,你加以指正并且说明你的想法好了。 实在有点看不下去了。以后还有人敢提问么? 谁不需要一个“脱菜”的过程啊。 |
|
返回顶楼 | |
发表时间:2010-03-18
哎~关注..........
|
|
返回顶楼 | |