题解 | #整型数组合并#
整型数组合并
https://www.nowcoder.com/practice/c4f11ea2c886429faf91decfaf6a310b
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void quicksort(int num[],int left,int right) //快速排序
{
if(left>right)
{
return;
}
int i = left;
int j = right;
int tag = num[left];
while(i<j){
while(num[j]>=tag && j>i)
{
j--;
}
num[i] = num[j];
while (num[i]<=tag&&i<j) {
i++;
}
num[j] = num[i];
}
num[i] = tag;
quicksort(num,left,i-1);
quicksort(num,i+1,right);
}
int moverep(int num[],int len) //移除重复数字
{
int i = 0;
for(i=0;i<len-1;i++)
{
if(num[i]==num[i+1])
{
for(int j=i+1;j<len-1;j++)
{
num[j] = num[j+1];
}
len--;
i--;
}
}
return len;
}
int main()
{
int n1,n2;
while(~scanf("%d",&n1))
{
int i =0;
int a1[n1];
for(i=0;i<n1;i++){
scanf("%d",&a1[i]);
}
scanf("%d",&n2);
int n =n1+n2;
int arr[n];
for(i=n1;i<n;i++){
scanf("%d",&arr[i]);
}
for(i=0;i<n1;i++){
arr[i] = a1[i];
}
quicksort(arr,0,n-1);
int len=moverep(arr, n);
for(i=0;i<len;i++)
{
printf("%d",arr[i]);
}
}
}

