合并k个有序链表java 如何将两个有序数组合并到一个有序数组中?
如何将两个有序数组合并到一个有序数组中?
这非常简单:代码如下(我们不要考虑这里的对象,假设它是int:):public int[]getnewarrays(int[]one,int[]two){intlen=one.lengthintlen2=两个. lengthintlen3=onelength twolength//get the sum of two array length int[]newarray=newint[len3]//创建第三个数组,length=sum of two array length for(inti=0I<len3i){if(I<len){//if I<len,赋值给元素newarray[I]=one[I]continue}intt=I-len//t从0开始,newarray[i]=two[t]//将下列元素赋值给two中的元素}//逐个赋值给第三个数组,值为前两个数组数组.排序(newarray)//使用Java提供的sort方法对第三个数组进行排序//bubble sort也可以在这里使用不要演示returnewarray}
已经被修改,主要是当它结束时,通常一个数组已经结束,而另一个数组的数据没有合并到C:#include“stdio中。H“void main(){int a[5],B[5],C[11]int I,J,K,l,M=0 printf(“请输入5个数字n”)for(I=0ia[J 1]){K=a[J]a[J]=a[J 1]a[J 1]=K}If(B[J]>B[J 1]){l=B[J]B[J]=B[J 1]B[J 1]=l}}I=J=0 while(I
基本思想:
1)首先取a和B数组中的第一个元素进行比较,将小元素放入C数组;
2)将小元素所在数组的下一个元素与上一次比较后的另一个数组的大元素进行比较,重复上述比较过程,直到一个数组排在第一位;
3)将另一个数组的剩余元素复制到C数组中,并合并和删除把它们分类。
#include
void main()
{
int
a[10],b[10],c[20],i,ia,ib,ic
printf(“请输入第一个数组n”)
for(i=0i
scanf(“%d”,&a[i])
for(i=0i
scanf(“%d”,&b[i])
printf(“n”)
ia=0ib=0ic=0
而(ia
{
c[ic]=a[ia
]ia
}
否则{
c[ic]=b[ib
]ib
}
ic
}
而(ia
{
c[ic]=a[ia
]ia
ic
}
而(ib
{
c[ic]=b[ib
]ib
ic
}
而(i=0i
{
printf(“]”,c[i])}
}
合并k个有序链表java 有序数组合并java java有序链表合并
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。