两有序数组的归并+NS图+C++源程序
 题目内容
编写程序,将两个有序的一文数组(元素已从小到大排序好)归并成一个
有序的一文数组,并输出。
1.2  N-S图: 
a[4]={2,5,3,6}, b[4]={9,8,7,17}
输出未排序的a数组
调用函数A
输出排序后的a数组
输出未排序的b数组
调用函数A
输出排序后的b数组
调用函数C
                                  a[i]>b[j]
是                                                                     否
c[k++]=b[j++] 
c[k++]=a[i++]
i==4 
是                                                                 否
c[k++]=b[j] c[k++]=a[i];
输出归并后数组:
1.3   源程序及注释
#include<iostream.h>
void main()
{
 void A(int a[],int n);       //对A函数进行声明
   void C(int a[],int b[],int n);    //对C函数进行声明
 int a[4]={2,5,3,6};
 int b[4]={9,8,7,17};
 int i,j;
 cout<<endl<<"未排序的a数组:"<<endl;
 for(i=0;i<4;i++)
 {
  cout<<a[i]<<"  ";
  
 }
 cout<<endl<<"排序后的a数组:"<<endl;
 A(a,4);                                //调用A函数
 for(i=0;i<4;i++)
 {
  cout<<a[i]<<"  ";
 }
 cout<<endl<<"未排序的b数组:"<<endl;
 for(j=0;j<4;j++)
 {
      cout<<b[j]<<"  ";
 }
 cout<<endl<<"排序后的b数组:"<<endl;
 A(b,4);
 for(j=0;j<4;j++)
 {
  cout<<b[j]<<"  ";
 }
 C(a,b,8);                             //调用C函数
 
}
void A(int a[],int n)                       //定义A函数
{
 int i,j,k,t;
 for(i=0;i<n-1;i++)                     //选择法排序
 {
  k=i;
  for(j=i+1;j<n;j++)
   if(a[j]<a[k])
    k=j;
   t=a[k];a[k]=a[i];a[i]=t;
 }
}
void C(int a[],int b[],int n)                 //定义C函数
{ 
  int i,j,k=0;
     int c[原文请找腾讯752018766辣,文-论'文"网http://www.751com.cn          else
             c[k++]=a[i++];
     }
     if(i==4)
     {
         for(;j<4;j++)
             c[k++]=b[j];
     }
     else
     {
         for(;i<4;i++)
             c[k++]=a[i];
     }
     cout<<endl<<"归并后数组:"<<endl;            //输出数组
     for(i=0;i<k;i++)
         cout<<c[i]<<"  ";
}
1.4   运行结果1800