满意答案
lklmn
2014.03.03
采纳率:51% 等级:9
已帮助:115人
#include<stdio.h>
#define N 5//预定义数组长度
#define M 6
void SelectSort(int a[],int n)//使用选择排序进行不减排序
{
int i,t,min,tmp;
for(i=0;i<n;i++)
{
min=i;
for(t=i+1;t<n;t++)
{
if(a[min] > a[t])
min=t;
}
if(min!=i)
{
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}
}
}
int main()
{
int a[N]={12,2,5,45,8},b[M]={58,7,6,98,5,12},c[M+N];//预设测试数据
int i,j,k;
SelectSort(a,N);//先对两个无序数组进行排序
SelectSort(b,M);
i=0;
j=0;
k=0;//c数组下标
while(i<N && j<M)//数组a,b有元素
{
if(a[i] >= b[j])//将两者较小者放进数组c
{
c[k]=b[j];
k++;
j++;//b数组指向下一个
}
else
{
c[k]=a[i];
k++;
i++;//a数组指向下一个
}
}
while(i<N)//处理剩余元素
{
c[k]=a[i];
k++;
i++;
}
while(j<M)//处理剩余元素
{
c[k]=b[j];
k++;
j++;
}
for(i=0;i<M+N;i++)//输出检验
printf("%d ",c[i]);
printf("\n");
return 0;
}
望采纳~~~谢谢!
00分享举报