题目传送门
算法解析
千万不要题目让你插入排序你就插入排序
首先可以用 p a i r pair pair 来存储元素的值( f i r s t first first)和原来的下标( s e c o n d second second)
再用一个数组 p o s i pos_i posi 来记录原来的第 i i i 个元素现在在第几位
初始化:
scanf("%d%d", &n, &q);
for(int i = 1; i <= n; ++i) {
scanf("%d", &a[i].first);
a[i].second = pos[i] = i;
}
接下来是重点 !!!
想一下,如果原本序列有序,更改一个数的值,那么一遍冒泡排序就可以维护顺序(即如果它小,则把它往前放,如果它大,则把它往后放,具体请参考代码)
得出函数 s o r t sort sort_ o n c e once