解题思路:
第一行输入的m和n为合并数组的总长度,考虑直接创建长度为m+n的整型数组arr,把第二三行输入的整数直接放到arr里,然后对其进行排序后再输出即可。本题使用选择排序算法。
//选择排序法
void sort(int* p,int size){
int i,j,k;
for(i = 0; i < size - 1; i++){ //排序趟数
k = i; //假设最小元素下标为i
for(j = i + 1; j < size; j++){
if(*(p+j) < *(p+k))
k = j;
}
if(k != i){
int temp = *(p+i);
*(p+i) = *(p+k);
*(p+k) = temp;
}
}
}
int main(){
int n,m;
//输入
scanf("%d%d",&n,&m);
//将两个序列合并为一个数组
int size = m+n;
int arr[size];
int i;
for(i = 0; i < size; i++){
scanf("%d",&arr[i]);
}
//排序
sort(arr,size);
//输出
for(i = 0; i < size; i++){
printf("%d ",arr[i]);
}
return 0;
}