下面代码实现了插入排序函数,则横线上应填写( )。
void insertion_sort(vector<int> &nums) {
for (int i = 1; i < nums.size(); i++) {
________________________ { // 在此处填入代码
while (j >= 0 && nums[j] > base)
nums[j + 1] = nums[j];
j--;
}
nums[j + 1] = base;
}
}答案A。代码补全要考虑参数传递方式。如果需要修改实参,需用指针(*)传递。排序算法要理解每步比较的含义。
排序代码补全要理解每步比较的含义。选择排序找最小值时比较的是array[min]>array[j]。
【考点】插入排序逻辑|变量声明|数组索引
本题考查 GESP 大纲中"排序算法"模块(四级核心考点)。命题人专卡考生对插入排序基本框架的记忆模糊——四级考生大多背过"插入排序是逐个插入",但一到具体实现就不知道基准值从哪里取、游标从哪里起。