#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) }}

  • 正确
  • 错误