在排好序的数组,要求输入一个数后,按原来排序的规律将它插入其中。用c语言写编程,用简单函数完成
时间: 2024-12-09 18:18:28 浏览: 50
在C语言中,你可以使用二分查找法(Binary Search)的思想来找到合适的位置插入已排序的数组。这里是一个简单的函数实现示例:
```c
#include <stdio.h>
// 定义插入函数,数组元素为整型
void insertSorted(int arr[], int n, int num) {
int left = 0;
int right = n - 1;
// 二分查找插入位置
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] > num) {
right = mid - 1; // 如果中间值大于num,则num应该在左半部分
} else {
left = mid + 1; // 否则,num应该在右半部分
}
}
// 插入到找到的位置
arr[left] = num;
printf("插入后的数组: ");
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 3, 5, 6, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int num = 7; // 需要插入的数字
insertSorted(arr, n, num);
return 0;
}
```
这个程序首先计算出数组的左边界`left`和右边界`right`,然后在每次循环中检查中间元素`mid`。如果`mid`的值比目标值大,说明目标值应在`mid`的左边;反之,在右边。通过不断缩小搜索范围,直到找到插入位置。最后,将`num`放在该位置,并打印更新后的数组。
阅读全文
相关推荐

















