程序员算法试题及解析.docxVIP

  • 2
  • 0
  • 约1.03万字
  • 约 25页
  • 2026-06-07 发布于上海
  • 举报

程序员算法试题及解析

一、单项选择题(共10题,每题1分,共10分)

下列关于常见算法时间复杂度的描述中,正确的是

A.冒泡排序的平均时间复杂度为O(n2)

B.快速排序的最坏时间复杂度为O(nlogn)

C.二分查找的平均时间复杂度为O(n)

D.插入排序的最坏时间复杂度为O(logn)

答案:A

解析:冒泡排序无论最好、最坏还是平均情况,都需要两层遍历比较相邻元素,平均时间复杂度确实为O(n2),因此A选项正确。B选项错误,快速排序最坏情况出现在每次基准元素为当前序列的最大或最小值时,时间复杂度为O(n2);C选项错误,二分查找每次将查找范围缩小一半,平均时间复杂度为O(logn);D选项错误,插入排序最坏情况为序列完全逆序,每个元素都需要移动到序列最前端,时间复杂度为O(n2)。

下列关于排序算法稳定性的描述中,正确的是

A.快速排序是一种稳定的排序算法

B.堆排序是一种稳定的排序算法

C.归并排序是一种稳定的排序算法

D.希尔排序是一种稳定的排序算法

答案:C

解析:稳定排序的定义是排序后值相等的元素相对顺序和排序前保持一致,归并排序在合并子序列时,若两个元素值相等会优先保留前半部分的元素,因此是稳定排序,C选项正确。A选项错误,快速排序的基准元素交换操作可能打乱相等元素的相对顺序;B选项错误,堆排序的堆调整操作可能交换相等元素的位置;D选项错误,希尔排序的

文档评论(0)

1亿VIP精品文档

相关文档