在面试过程中,我被问到以下问题:如何对大型整数进行排序?
我们有一个客户端应用程序可以发送请求并接收int数据流(可能很大,但小于INT_MAX)。我们需要这样做:
Int Data ----> Our ----> Sorted Int Data
Stream App Data Stream
所以如下我会写的方法:
public int[] sort(int[] array){
Arrays.sort(array);
return array;
}
的问题是,大array
无法放入堆栈,将投入堆这降低了性能。如何在良好的性能方式重构它?
如果数据不适合堆栈,我认为没有任何魔法可以使它合适 – Felk
@Felk是的,这就是为什么我要求以另一种方式来处理它。 –
你必须想出一个逻辑来将数据拆分成块,然后以某种方式处理块 - >用堆排序或其他东西 – Lino