排序包含在Java中万个号码数组 [英] Sorting an array containing million numbers in Java

查看:108
本文介绍了排序包含在Java中万个号码数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个面试问题及放大器;我期待西隧专家能够以更好的方式回答...

This is an interview question & I'm looking wht experts can answer in a better way...

你如何排序包含在Java中万个号码数组?

How do you sort an array containing million numbers in Java?

谢谢!

推荐答案

面试问题永远不会有正确的答案。
面试官教问一些开放式的问题,看看你是怎么想的和推理的问题。
你在轮到你,应该表现出思维的过程,并表明你能想到的软件工程方式。

Interview questions never have the right answer. The interviewers taught to ask open-end questions to see how you think and reason about problem. You, in your turn, should show process of thinking and demonstrate that you can think in "software engineering way".

类似的东西:


  1. 呵呵...... 1万个号码...

  2. 我认为他们是简单的长,所以百万约需4兆内存

  3. (嗯......也许是我错了这里长期将采取8个字节所以这将是8兆... - 它现在不是那么重要了这个问题)

  4. 我们可以将其加载到内存中,并利用现成algorith Arrays.sort(长[])

  5. (我知道我的工具和核心库)。

  6. 这将是没有多余的内存和O(N *的log(n))的复杂性(6 000 000操作BTW)。

  7. 您能做得更快?

  8. 哦... ...我记得我听说基数排序 - 这算法为我们提供了O(K * n)的复杂性,其中k为显著ditigs数(长这将是两倍整数(2十亿= 9位)= 18位),所以这将是18 *百万=哦......这将是慢3次,我不知道该算法将多少额外的内存要求。

  9. 如果我们有这么多的数据,这将溢出的可用内存?

  10. 我们将剁成数据成M L块大小,以便每个块都将装入内存

  11. 我们将每块separatedly分类和储存结果文件

  12. 的排序文件合并将与O(米)的速度

  13. 我们将需要执行L-1这样的合并


这篇关于排序包含在Java中万个号码数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆