使用C语言 把一个整数按大小顺序插入已排好序的数组中(已排序的数组中元素为:6 9 10 12 15)。 样例输入 复制 11 样例输出 复制 插入后的数组元素: 6 9 10 11 12 15
时间: 2024-12-11 21:36:52 浏览: 7
在C语言中,你可以通过二分查找法来找到合适的位置,然后将新元素插入到已排序的数组中。以下是实现这一功能的一个示例:
```c
#include <stdio.h>
// 定义函数,用于插入元素并保持数组有序
void insert_sorted(int arr[], int size, int num) {
int low = 0;
int high = size - 1;
// 二分查找插入位置
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] < num) {
low = mid + 1; // 如果中间元素小于num,说明应该放右边
} else {
high = mid - 1; // 否则放在左边
}
}
// 将元素插入适当位置,并调整其他元素
memmove(&arr[high + 1], &arr[high + 1], (size - (high + 1)) * sizeof(arr[0])); // 移动右侧元素
arr[high + 1] = num; // 插入新元素
}
int main() {
int arr[] = {6, 9, 10, 12, 15};
int size = sizeof(arr) / sizeof(arr[0]);
int num = 11;
printf("原数组元素:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
insert_sorted(arr, size, num);
printf("\n插入后的数组元素:\n");
for (int i = 0; i < size + 1; i++) {
printf("%d ", arr[i]); // 包含新增元素
}
return 0;
}
```
当你运行这个程序,你会看到样例输入11对应的输出,即插入后的数组元素:6 9 10 11 12 15。
阅读全文