题解 | #有序序列插入一个整数#
有序序列插入一个整数
https://www.nowcoder.com/practice/444e87f938464906a1649cff236b102b
#include <stdio.h>
int main() {
int n, key;
scanf("%d", &n);
int a[n + 1];//注意是n+1个位置
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &key);
int k, i;
for (i = 0; i < n; i++) {
if (key > a[i]) {
continue;
}
//key <= a[i] i == 2
//从2开始插入
for (k = n; k > i; k--) {
a[k] = a[k - 1];
}
//找到位置后插入值
a[k] = key;
//记得插入完就break
break;
}
//在末尾插入的情况
if (i == n) {
a[i] = key;
}
//打印插入好的序列
for (int i = 0; i <= n; i++) {
printf("%d ", a[i]);
}
return 0;
}
