C++将一个数插入有序数组
时间: 2024-11-22 13:34:53 浏览: 34
在C++中,将一个数插入到有序数组中通常涉及到二分查找和插入操作。这里是一个简单的示例,假设我们有一个升序排列的整数数组:
```cpp
#include <iostream>
using namespace std;
// 插入函数,使用二分查找确定插入位置
int binaryInsert(int arr[], int n, int value) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // 计算中间索引
// 如果新值小于中间元素,则在左半部分查找插入位置
if (arr[mid] > value)
high = mid - 1;
// 否则,在右半部分查找
else
low = mid + 1;
}
// 将值插入到找到的位置
arr[low] = value;
return low;
}
// 测试函数
void insertAndPrint(int arr[], int n, int value) {
int index = binaryInsert(arr, n, value);
cout << "Element " << value << " inserted at index " << index << endl;
for (int i = 0; i < n+1; i++)
cout << arr[i] << " ";
cout << endl;
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int value = 4;
insertAndPrint(arr, n, value);
return 0;
}
```
在这个例子中,`binaryInsert` 函数会返回新值应该插入的位置,然后在 `main` 函数里调用它并打印出结果。如果数组已经是有序的,这个过程仍然可以保持其有序。
阅读全文