两个不同数组交叉排序

有两个不同的数组,将两个数组中的值交叉排序给另一个数组。
arr=1 ,3,5,7,9.
brr=2,4,6,8,410.
结果为crr=1,2,3,4,5,6,7,8,9,10


#include<stdio.h>
int main()
{
    int m,n,i,j,temp,seat;
    m=5;
    int a[1000] = {1,3,5,7,9};
    for(i=0;i<m-1;i++)
    {
        seat=i;
        j=i+1;
        while(j<m)
        {
            if(a[seat]<a[j])
            {
                seat=j;
            }
            j++;
         }
         if(seat!=i)
          {
              temp=a[i];
              a[i]=a[seat];
              a[seat]=temp; 
          }
    }
    n = 5;
    int b[1000] = {2,4,6,8,10};
    for(i=0;i<n-1;i++)
    {
        seat=i;
        j=i+1;
        while(j<n)
        {
            if(b[seat]<b[j])
            {
                seat=j;
            }
            j++;
         }
         if(seat!=i)
          {
              temp=b[i];
             b[i]=b[seat];
              b[seat]=temp; 
          }
    }
    int c[m+n];
    for(i=0;i<m+n;i++)
    {
        if(i<=m-1)
        c[i]=a[i];
        else
        c[i]=b[i-m];
        }    
    for(i=0;i<m+n-1;i++)
    {
        seat=i;
        j=i+1;
        while(j<m+n)
        {
            if(c[seat]<c[j])
            {
                seat=j;
            }
            j++;
         }
         if(seat!=i)
          {
              temp=c[i];
              c[i]=c[seat];
              c[seat]=temp; 
          }
    }
    printf("crr=");
    for(i=0;i<m+n-1;i++)
        printf("%d,",11-c[i]);
    printf("%d",11-c[i]);
 } 

arr和brr已经是递增序列了吗?

先合并两个数组,在采用冒泡进行排序。以下是一个函数实现

int merge_sort(int a[], int b[], int c[], int n, int m) {
    int i, j, k;
    for (i = 0; i < n; i++) {
        c[i] = a[i];
    }
    for (j = 0; j < m; j++) {
        c[i + j] = b[j];
    }
    for (i = 0; i < n + m - 1; i++) {
        for (k = i + 1; k < n + m; k++) {
            if (c[i] > c[k]) {
                int temp = c[i];
                c[i] = c[k];
                c[k] = temp;
            }
        }
    }
    return 0;
}

如果对你有帮助,还请点个采纳,万分感谢!