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

2025 年 5 月 11 日 | 阅读 2 分钟

1. 冒泡排序的最坏时间复杂度是多少?

  1. O(n)s
  2. O(n log n)
  3. O(n^2)
  4. O(log n)

说明

正确选项是选项 (c)。

在冒泡排序的最坏情况下,它需要 O(n^2) 次比较和交换才能对数组进行排序。


2. 以下哪项将使冒泡排序轻松终止?

  1. 在一趟中没有交换发生。
  2. 当整个数组遍历一次后。
  3. 在执行固定次数的迭代后。
  4. 以上都不是。

说明

正确选项是选项 (a)。

如果在一次遍历中没有发生交换,则表示数组已排序,排序过程可以轻松终止。


3. 以下关于 C 语言冒泡排序的说法,哪项是正确的?

  1. 它将使用与输入大小成比例的额外内存。
  2. 它是一种就地排序算法。
  3. 它保证 O(n) 的时间复杂度。
  4. 它可以更有效地用于大型数据集。

说明

正确选项是选项 (b)。

冒泡排序是一种就地排序算法,因为它无需额外内存即可对数组进行排序。


4. 冒泡排序的主要缺点是什么?

  1. 它实现起来不是很简单。
  2. 它需要更多的额外内存。
  3. 它具有最高的平均时间复杂度。
  4. 它不稳定。

说明

正确选项是选项 (c)。

冒泡排序的主要缺点是其平均时间复杂度最高为 O(n^2),这使其对于大型数据集效率低下。


5. 哪种类型的冒泡排序数据性能会非常差?

  1. 已排序数据
  2. 数据按逆序排序。
  3. 随机数据
  4. 以上全部。

说明

正确选项是选项 (d)。

由于其 O(n^2) 的时间复杂度,冒泡排序对除已排序数据外的所有类型数据性能都很差。


6. 以下程序的输出是什么?

  1. 12458
  2. 51428
  3. 84215
  4. 54218

说明

正确选项是选项 (a)。

上述冒泡排序函数按升序对数组进行排序,结果为“1 2 4 5 8”。