我一直在将10000个已排序的列表合并成一个长排序列表。每个列表包含约5000个doubles
。
double[] result;// this is the single long sorted list
void merge(double[] x){
double[] newList=new double[x.length+result.length];
int i=0,j=0;
while(i<x.length && j<result.length){
insert the smaller one
increment i or j;
}
if(i<x.length){
add the rest
}
if(j<result.length){
add the rest
}
result=newList;
}
每次使用这种方法都会分配一个新数组,随着result[]
的增长,这并不高效。有什么建议吗?