概述
public static int[] merge(int[] A,int[] B)
{
int[] result=new int[A.length+B.length];
int lpos=0,rpos=0;
for(int i=0;i<result.length;i++)
{
if(lpos<A.length&&rpos<B.length)
{
if(A[lpos]<=B[rpos])
{
result[i]=A[lpos++];
}
else
{
result[i]=B[rpos++];
}
}
else if(lpos<A.length)
{
result[i]=A[lpos++];
}
else if(rpos<B.length)
{
result[i]=B[rpos++];
}
}
return result;
}
public static int[] k_path_merge(ArrayList<int[]> nums)
{
int m=nums.size();
int len=0;
for(int i=0;i<m;i++)
{
len+=nums.get(i).length;
}
int[] result=new int[len];
int k=m;
while(k>1)
{
ArrayList<int[]> temp=new ArrayList<int[]>();
for(int i=0;i<k;i+=2)
{
if(i+1<k)
{
int[] current=merge(nums.get(i),nums.get(i+1));
temp.add(current);
}
else
{
temp.add(nums.get(i));
}
}
nums.clear();
for(int j=0;j<temp.size();j++)
{
nums.add(temp.get(j));
}
k=nums.size();
}
return nums.get(0);
}
最后
以上就是老迟到猎豹为你收集整理的k路有序数组归并Java实现的全部内容,希望文章能够帮你解决k路有序数组归并Java实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复