题解
【入门】元素插入有序数组
1 条题解
-
0
解题思路
找到第一个不小于待插入数的位置,把后面的数向后移动一格。
参考代码
// 先读入题目给出的输入数据。 // 用简单的循环完成题目要求。 #include <iostream> using namespace std; int main() { int n, m, a[1005]; cin >> n >> m; for (int i = 0; i < m; i++) cin >> a[i]; int k = 0; while (k < m && a[k] < n) k++; for (int i = m; i > k; i--) { // 从后向前移动,给新数空出一个位置。 a[i] = a[i - 1]; } a[k] = n; for (int i = 0; i <= m; i++) cout << a[i] << " "; cout << endl; return 0; }复杂度分析
代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。
- 1