#JC1051. 归并排序

归并排序

一、单项选择题(每题2分,共20分)

1、归并排序的核心流程是?() {{ select(1) }}

  • 选基准值划分区间,递归处理子区间
  • 先均等拆分,再合并有序子序列
  • 相邻元素两两交换完成排序
  • 每次选出最小元素放到前面

2、归并排序依靠下面哪一种编程思想实现?() {{ select(2) }}

  • 递归
  • 贪心
  • 枚举
  • 二分答案

3、归并排序拆分序列时,mid的计算方式为?() {{ select(3) }}

  • mid = L + R
  • mid = (L + R) / 2
  • mid = R-L
  • mid = L*2

4、归并排序合并过程需要什么数组来临时存放数据?() {{ select(4) }}

  • 标记数组vis
  • 临时数组b
  • 栈stack
  • 队列queue

5、归并排序合并升序序列时,first指向左区间,second指向右区间,当a[first]<=a[second],应该如何处理?() {{ select(5) }}

  • 将a[first]放入临时数组,first++
  • 将a[second]放入临时数组,second++
  • 直接退出合并循环
  • 交换a[first]与a[second]

6、归并排序属于稳定性排序,稳定排序的含义是?() {{ select(6) }}

  • 排序速度永远最快
  • 相等元素排序后保持原来的相对先后顺序
  • 不会使用额外数组
  • 只能处理升序不能处理降序

7、关于快速排序与归并排序对比,说法正确的是?() {{ select(7) }}

  • 有序序列会造成快排效率变差,归并排序不受该影响
  • 归并排序必须选基准值划分
  • 快排需要临时数组,归并排序不需要
  • 归并排序是不稳定排序

8、利用归并排序统计逆序对,发生逆序时,增加的逆序对数量是?() {{ select(8) }}

  • mid‑first+1
  • second‑mid
  • R‑L+1
  • first+mid

9、录取分数线题目,已经降序排好成绩数组a,m为计划录取人数,循环条件while(a[m‑1]==a[m])的作用是?() {{ select(9) }}

  • 把全部相同分数全部录取
  • 避免录取人数超过m,向前移动m
  • 将数组升序重排
  • 统计总学生数量

10、兔子排行榜题目,分数相同要保留输入原来顺序,选择归并排序的原因是?() {{ select(10) }}

  • 归并排序速度一定比所有排序都快
  • 归并是稳定排序,相等元素相对顺序不变
  • 不需要递归就可以完成排序
  • 不需要额外临时数组

二、判断题(每题2分,共10分)

11、归并排序拆分的时候,尽量把序列拆分为大致均等的两部分。() {{ select(11) }}

  • 正确
  • 错误

12、归并排序合并完成后,不需要把临时数组的数据复制回原数组。() {{ select(12) }}

  • 正确
  • 错误

13、归并排序可以在合并的过程中统计逆序对的总个数。() {{ select(13) }}

  • 正确
  • 错误

14、归并排序递归时,必须等到子区间长度等于2才可以开始合并。() {{ select(14) }}

  • 正确
  • 错误

15、归并排序既可以实现升序,修改比较条件也可以实现降序排序。() {{ select(15) }}

  • 正确
  • 错误