C 语言冒泡排序 MCQ 练习题 3

2025年1月29日 | 2 分钟阅读

1. 哪个排序算法通常比冒泡排序更高效,但时间复杂度仍然是二次的?

  1. 快速排序
  2. 合并排序
  3. 选择排序
  4. 堆排序

说明

正确答案是 (c) 选项。

选择排序通常比冒泡排序更有效,因为它需要的比较次数更少,平均交换次数减半。尽管如此,两种算法的时间复杂度都是二次的 O(n^2)。


2. 如果在链表上运行冒泡排序会发生什么?

  1. 它在数组上的运行方式相同。
  2. 由于大量的指针更新,它的运行效率更差。
  3. 它比在数组上运行得更快。
  4. 它不能在链表上运行。

说明

正确答案是选项 (b)。

链表中冒泡排序的性能不佳是由于在交换过程中频繁更新指针造成的。


3. 为什么冒泡排序不适用于大型数据集?

  1. 因为它占用太多内存。
  2. 因为它具有高时间复杂度。
  3. 因为它难以实现。
  4. 因为它不是基于比较的排序。

说明

正确答案是选项 (b)。

因此,冒泡排序由于其在大型数据集上的高时间复杂度 O(n^2) 而不适用。


4. 冒泡排序的稳定性如何影响其在某些数据集上的性能?

  1. 它不影响性能。
  2. 它提高了大型数据集上的性能。
  3. 它保持了相等元素的相对顺序。
  4. 它增加了时间复杂度。

说明

正确答案是 (c) 选项。

冒泡排序的稳定性意味着它保持了相等元素的相对顺序,这对于包含重复值的数据集是有益的。


5. 以下代码的作用是什么?

  1. 按升序排序数组
  2. 按降序排序数组
  3. 查找最大元素
  4. 查找最小元素

说明

正确答案是选项 (b)。

此版本的冒泡排序将数组按降序排列,因为它在当前元素的值低于下一个元素时交换元素。