將兩個各有n個元素的有序表歸并成 如何將兩個有序數(shù)組合并到一個有序數(shù)組中?
如何將兩個有序數(shù)組合并到一個有序數(shù)組中?這非常簡單:代碼如下(我們不要考慮這里的對象,假設(shè)它是int:):public int[]getnewarrays(int[]one,int[]two){int
如何將兩個有序數(shù)組合并到一個有序數(shù)組中?
這非常簡單:代碼如下(我們不要考慮這里的對象,假設(shè)它是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]//創(chuàng)建第三個數(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開始,newarray[i]=two[t]//將下列元素賦值給two中的元素}//逐個賦值給第三個數(shù)組,值為前兩個數(shù)組數(shù)組.排序(newarray)//使用Java提供的sort方法對第三個數(shù)組進行排序//這里也可以首先使用bubble sort,比較a和B數(shù)組中的第一個元素,將小元素放入C數(shù)組中;
2)將上一個數(shù)組中的剩余元素與下一個數(shù)組中的剩余元素進行比較,然后重復(fù)比較。
#include
void main()
{
int
a[10],b[10],c[20],i,ia,ib,ic
printf(“請輸入第一個數(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
最新版本可以在選擇或冒泡之前通過合并數(shù)組進行排序。有兩種以上的有序方法。這取決于你學(xué)到了什么。如果我需要的話,我會寫代碼的。稍等片刻