@chawuciren
2018-11-14T13:46:23.000000Z
字数 590
阅读 588
未分类
用数组实现
#include<stdio.h>
#include<stdlib.h>
void merge(int array[],int n,int a[],int l1,int b[],int l2);
int main(){
int a[3]={1,3,5};
int b[4]={2,4,6,8};
int array[7]={0};//接收结果的数组
merge(array,7,a,3,b,4);
for(int i=0;i<7;i++){
printf("%d ",array[i]);
}
return 0;
}
void merge(int array[],int n,int a[],int l1,int b[],int l2){
int j=0;
int i=0;
int k=0;
n=l1+l2;
while(i!=l1&&j!=l2){//当两个数组都不为空时
if(a[i]>b[j]){
array[k]=b[j];
j+=1;
k+=1;
}
else{
array[k]=a[i];
i+=1;
k+=1;
}
}
if(i<l1){//当b为空,将a数组余下的元素接在array后
for(int h=i;h<l1;h++){
array[k]=a[h];
k+=1;
}
}
if(j<l2){//当a为空
for(int h=j;h<l2;h++){
array[k]=b[h];
k+=1;
}
}
}