归并
#include<stdio.h> void merge(const int array_a[],const int array_b[],int Temp_array[],int size_a,int size_b); void merge(const int array_a[],const int array_b[],int Temp_array[],int size_a,int size_b) { int tempPos=0,Lpos=0,Rpos=0; while((Lpos!=size_a)&&(Rpos!=size_b)) { if(array_a[Lpos]<=array_b[Rpos]) Temp_array[tempPos++]=array_a[Lpos++]; else Temp_array[tempPos++]=array_b[Rpos++]; } while(Lpos!=size_a) Temp_array[tempPos++]=array_a[Lpos++]; while(Rpos!=size_b) Temp_array[tempPos++]=array_b[Rpos++]; } int main() { const int array_a[]={1,3,5,7,9}; const int array_b[]={2,4,6,8,10}; const int size_a=sizeof(array_a)/sizeof(array_a[0]); const int size_b=sizeof(array_b)/sizeof(array_b[0]); int temp_array[size_a+size_b]; merge(array_a,array_b,temp_array,size_a,size_b); for(int i=0;i<10;i++) printf("%d\n",temp_array[i]); return 0; }