Description
对一组已经排好序的数组,要求输入m个数,将这m个数按照原来的排序规律插入数组中。输出得到的新数组。
Input
第一行输入一个n,代表已经排好序的元素个数,n不大于20。 第二行,输入n个已经排好序的整数。 第三行输入一个m,代表要插入的元素个数。 第四行输入m个整数,代表要插入的整数。
Output
输出得到的新数组。
#include <stdio.h>
// 函数用于将新元素插入到已排序数组中,并保持数组有序。
void insertIntoSortedArray(int arr[], int *size, int newElement) {
// 从数组的最后一个元素开始比较。
int i = *size - 1;
// 将所有比新元素大的元素向后移动一位。
while (i >= 0 && arr[i] > newElement) {
arr[i + 1] = arr[i];
i--;
}
// 插入新元素到正确的位置。
arr[i + 1] = newElement;
// 增加数组大小。
(*size)++;
}
int main() {
int n, m; // 分别表示已排序数组和待插入数组的元素个数。
int sortedArr[100]; // 已排序的数组,假设最大长度为100。
int newArr[100]; // 待插入的新元素数组,假设最大长度为100。
// 读取已排序数组的元素个数。
scanf("%d", &n);
// 读取已排序数组中的元素。
for (int i = 0; i < n; i++) {
scanf("%d", &sortedArr[i]);
}
// 读取待插入数组的元素个数。
scanf("%d", &m);
// 读取待插入数组中的元素。
for (int i = 0; i < m; i++) {
scanf("%d", &newArr[i]);
}
// 将新元素逐一插入到已排序数组中。
for (int i = 0; i < m; i++) {
insertIntoSortedArray(sortedArr, &n, newArr[i]);
}
// 打印最终的已排序数组。
for (int i = 0; i < n; i++) {
printf("%d", sortedArr[i]);
// 如果不是最后一个元素,则打印空格分隔符。
if (i < n - 1) {
printf(" ");
}
}
// 换行。
printf("\n");
return 0;
}
标签:规律,int,元素,个数,插入,数组,排序
From: https://blog.csdn.net/2402_86997774/article/details/144621877