能帮我解析一下么谢谢
#define N 30#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sort(int array[],int n)
{
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;
if(k!=j)
{
t=a[i];a[i]=a[k];a[k]=t;
}
}
}
void visit(int array[],int n);
void merge(int A[],int m,int B[],int n,int C[]);
void InitList(int array[],int n);
void visit(int array[],int n)
{
int i;
printf("\n");
for(i=0;i<n;i++)
printf("%d\t",array[i]);
printf("\n");
}
void main()
{
int A[N],B[N],C[2*N];
srand((unsigned)time(NULL));
InitList(A,10);
sort(A,10);
visit(A,10);
InitList(B,10);
visit(B,10);
sort(B,10);
merge(A,10,B,10,C);
visit(C,20);
}
void merge(int A[],int m,int B[],int n,int C[])
{
int i,j,k;
i=j=k=0;
while(i<m&&j<n)
{
if(A[i]<B[j])
{
C[k]=A[i];
i++;
}
else
{
C[k]=B[j];
j++;
}
k++;
}
while(i<m)
C[k++]=A[i++];
while(j<n)
C[k++]=B[j++];
}
void InitList(int array[],int n)
{
int i;
for(i=0;i<n;i++)
array[i]=rand()%100
}