在下列代码的横线处填写( ),完成对有 n 个 int 类型元素的数组 array 由小到大排序 
这道题考的是插入排序的内层循环写法。拿到题先想:当前元素 array[i] 要插入到左边已排好的区间,内层循环必须从紧邻 i 的左边(i-1)开始,且必须向左扫描直到头,所以初始化 j=i-1,步长 j--,条件 j>=0。
最容易栽跟头的就是方向搞反或者起始点偏移。选 C 的同学往往把内层循环写成从左往右(j++),这完全违背了插入排序‘把大元素往后挪’的逻辑,导致数组越乱越乱。选 A 的同学则是因为死记硬背‘从 0 开始’或者‘从 i 开始’,忽略了当前元素 i 左边第一个待比较的其实是 i-1,少比一个数,排序结果必错。
【考点】插入排序|循环条件控制|数组下标边界
GESP 四级 算法模块第 2 章「常用排序」,插入排序是必考内容。命题人专门选这个知识点,是因为它表面简单、实则细节致命——90% 的考生背过「插入排序用两层循环」,但一到具体写内层循环就栽跟头,卡住的是「循环起始值与方向」这个基础中的基础。