#AG102. 【课堂练习】1.2算法简介进阶

【课堂练习】1.2算法简介进阶

1.当算法的时间复杂度为O(n log n)时,这属于: {{ select(1) }}

  • 常数时间
  • 线性对数时间
  • 平方时间
  • 指数时间

2.以下函数的时间复杂度是:{{ select(2) }}

  • O(n)
  • O(n log n)
  • O(log n)
  • O(2^n)

3.当算法的时间复杂度为O(1)时,说明: {{ select(3) }}

  • 与输入规模无关
  • 线性增长
  • 指数增长
  • 对数增长

4.在旅行商问题中,5个城市的排列组合数是: {{ select(4) }}

  • 24
  • 120
  • 720
  • 5040

5.程序员尝试用二分查找在数组[5, 2, 9, 1, 5, 6]中查找数字9,但总是失败。失败的原因是: {{ select(5) }}

  • 数组包含重复元素
  • 目标值不存在
  • 数组未排序
  • 算法实现有误

6.小明在图书馆的索引系统中查找一本编号为"20231025"的书籍,索引是按编号有序排列的。若使用二分查找,最坏情况下需要检查多少次才能确定是否存在?(假设共有1,000,000本书) {{ select(6) }}

  • 1,000,000次
  • 500,000次
  • 1000次
  • 20次

7.某游戏排行榜前100名玩家的得分按降序排列。若想确认玩家"Alice"是否在榜,使用二分查找时发现中间位置的分数比Alice的分数低,下一步应: {{ select(7) }}

  • 搜索左半部分
  • 搜索右半部分
  • 终止搜索
  • 重新排序数组

8.某算法的时间复杂度为O(n³),当输入规模扩大10倍时,运行时间大约变为原来的多少倍? {{ select(8) }}

  • 10倍
  • 100倍
  • 1000倍
  • 1000倍

9.某游戏排行榜前1000名玩家的分数已排序。若玩家当前排名是第800名,使用二分查找时,第一次比较的中间位置是第 {{ input(9) }} 名。(初始 low=0,high=999)


10.对长度为n的数组,二分查找的时间复杂度是O(){{ input(10) }},而线性查找的时间复杂度是O(){{ input(11) }}。