13、下面代码实现了插入排序函数,则横线上应填写( )。
答案:A
解析:插入排序的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。
具体步骤如下:
1.从数组的第二个元素开始,假设前面的元素已经是有序的。
2.将当前元素与前面的元素进行比较,如果当前元素小于前面的元素,则将前面的元素向后移动一位。
3.重复上述步骤,直到找到合适的位置插入当前元素。
我们需要在横线上填写正确的初始化代码。具体来说,我们需要定义两个变量:
• base:当前要插入的元素。
• j:用于遍历前面的元素。
我们再逐一对选项进行分析:
A. int base = nums[i], j = i - 1;这个选项是正确的。base 是当前要插入的元素,j 初始化为 i - 1,表示前面的最后一个元素。
B. int base = nums[i], j = i;这个选项不正确。j 应该初始化为 i - 1,而不是 i。
C. int base = nums[0], j = i - 1;这个选项不正确。base 应该是当前要插入的元素 nums[i],而不是 nums[0]。
D. int base = nums[0], j = i;这个选项不正确。base 应该是当前要插入的元素 nums[i],而不是 nums[0]。
所以,正确答案是A。