#JC1022. 简单排序(二)-插入排序
简单排序(二)-插入排序
一、单项选择题(每题2分,共20分)
1、插入排序的核心思想是?()。 {{ select(1) }}
- 将数字依次插入到已经有序的序列中
- 每轮选出最值交换到前面
- 相邻元素两两比较交换
- 使用数组做桶进行计数
2、插入排序处理数组时,第几号元素不需要比较,直接作为初始有序部分?()。 {{ select(2) }}
- 下标0
- 下标1
- 下标2
- 下标n‑1
3、插入排序内层循环j的循环条件for(j = i‑1; j >= 0; j--),j代表的含义是?()。
{{ select(3) }}
- 待插入元素的值
- 遍历已经排好序部分的下标
- 数组总长度
- 交换的次数
4、插入排序升序,当a[j] > x时,需要执行的操作是?()。
{{ select(4) }}
- a[j+1] = a[j]
- a[j] = a[j+1]
- swap(a[j],a[j+1])
- a[j+1] = x
5、插入排序中,跳出内层循环后,存放待插入数据x的位置是?()。 {{ select(5) }}
- a[j]
- a[j+1]
- a[i]
- a[i‑1]
6、有数组{25,20,29,23,15},插入排序处理第2个数字20,执行结果是?()。 {{ select(6) }}
- {25,20,29,15,23}
- {20,25,29,23,15}
- {15,20,23,25,29}
- {20,25,23,29,15}
7、插入排序要实现降序排列,if里面的判断条件应该是?()。 {{ select(7) }}
- if(a[j] > x)
- if(a[j] < x)
- if(a[j] == x)
- if(a[j] != x)
8、下面关于插入排序说法正确的是?()。 {{ select(8) }}
- 需要每一轮都找最值下标
- 前面一部分数据是已经排好的有序序列
- 必须要做相邻元素swap交换
- 适合数值范围很大、数据量极大场景
9、模拟书架摆书的插入排序例子,输入顺序25、20、29、23、15,最终升序结果是?()。 {{ select(9) }}
- 25 20 29 23 15
- 29 25 23 20 15
- 15 20 23 25 29
- 15 23 20 29 25
10、插入排序内层循环for(j=i‑1;j>=0;j--),如果条件不满足,会发生什么?()。
{{ select(10) }}
- 直接删除数组元素
- break跳出循环,准备插入数据
- 继续j++向后遍历
- 把全部数组赋值为0
二、判断题(每题2分,共10分)
11、插入排序是把新元素插入到前面已经有序的数列当中。() {{ select(11) }}
- 正确
- 错误
12、插入排序处理升序时,当a[j]>x,需要把a[j]向后移动一位。()
{{ select(12) }}
- 正确
- 错误
13、插入排序每一轮都必须使用swap函数交换两个数组元素。() {{ select(13) }}
- 正确
- 错误
14、插入排序既可以实现升序,也可以实现降序排序。() {{ select(14) }}
- 正确
- 错误
15、插入排序中,i从1开始,i=0的元素直接作为初始有序序列。() {{ select(15) }}
- 正确
- 错误