將兩個(gè)數(shù)組合并并按升序 如何用C語(yǔ)言編程將兩個(gè)有序數(shù)組a,b合并成一個(gè)數(shù)組c?
如何用C語(yǔ)言編程將兩個(gè)有序數(shù)組a,b合并成一個(gè)數(shù)組c?基本思路如下:1)比較a、B數(shù)組中的第一個(gè)元素,將小元素放入C數(shù)組中;2)將小元素所在數(shù)組的下一個(gè)元素與上一次比較后的另一個(gè)數(shù)組中的大元素進(jìn)行比較
如何用C語(yǔ)言編程將兩個(gè)有序數(shù)組a,b合并成一個(gè)數(shù)組c?
基本思路如下:1)比較a、B數(shù)組中的第一個(gè)元素,將小元素放入C數(shù)組中;
2)將小元素所在數(shù)組的下一個(gè)元素與上一次比較后的另一個(gè)數(shù)組中的大元素進(jìn)行比較,重復(fù)上述比較過(guò)程,直至先排列一個(gè)數(shù)組;
3)將另一個(gè)數(shù)組的其余元素復(fù)制到C數(shù)組中,并對(duì)它們進(jìn)行合并和排序。
#include
void main()
{
int
a[10],b[10],c[20],i,ia,ib,ic
printf(“請(qǐng)輸入第一個(gè)數(shù)組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
}
else{
c[ic]=b[ib
]ib
}
ic
}
while(ia
{
c[ic]=a[ia
]ia
ic
}
while(ib
{
c[ic]=b[ib
]ib
ic
}
for(i=0i
{
printf(“]”,c[i])}
}
#include
#include
#include
#include
使用命名空間std
const int M=5
const int N=6
void sort(int[],int)
void merge(int*,int*,int*,int,int)
int main(){
int i,a[M],b[N],c[M N
]srand((unsigned int)time(null))
cout
for(i=0I
用C 寫(xiě)一個(gè)函數(shù),實(shí)現(xiàn)把兩個(gè)有序數(shù)組合并成一個(gè)有序數(shù)組?
非常簡(jiǎn)單:代碼如下(這里我們不考慮對(duì)象,假設(shè)它是int)[]public int[]getnewarrays(int[]one,int[]two){intlen=one.lengthintlen2=兩個(gè). lengthintlen3=onelength twolength//get the sum of two array length int[]newarray=newint[len3]//創(chuàng)建第三個(gè)數(shù)組,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開(kāi)始,newarray[i]=two[t]//將下列元素賦值給two中的元素}//逐個(gè)賦值給第三個(gè)數(shù)組,值為前兩個(gè)數(shù)組數(shù)組.排序(newarray)//使用Java提供的sort方法對(duì)第三個(gè)數(shù)組進(jìn)行排序//此處也可以使用bubble sort Do not show return array}