#6580. 【客观题】2.2基础算法考察
【客观题】2.2基础算法考察
一、单项选择题(共 25 题,每题 2.5 分,共计 62.5 分;每题有且仅有一个正确选项)
- 下列排序算法中,属于稳定排序的是( )。 {{ select(1) }}
- 直接插入排序
- 快速排序
- 简单选择排序
- 堆排序
- 内排序与外排序的核心区别是( )。 {{ select(2) }}
- 排序算法的时间复杂度不同
- 排序过程中是否需要访问外存
- 排序算法的稳定性不同
- 排序时是否需要进行元素比较
- 对n个元素进行快速排序,最坏情况下的时间复杂度为( )。 {{ select(3) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)
- 下列排序算法中,属于非比较类排序的是( )。 {{ select(4) }}
- 冒泡排序
- 基数排序
- 希尔排序
- 归并排序
- 衡量内排序算法效率的核心指标是( )。 {{ select(5) }}
- 算法的代码长度
- 排序过程中的元素比较次数
- 排序过程中的内存占用峰值
- 算法的输入输出次数
- 下列排序算法中,平均时间复杂度为O(n log n)且具备稳定性的是( )。 {{ select(6) }}
- 归并排序
- 快速排序
- 堆排序
- 简单选择排序
- 若需要对1000万条超大数据记录排序,计算机内存无法一次性容纳全部数据,应采用的排序方式是( )。 {{ select(7) }}
- 快速排序
- 内排序
- 外排序
- 希尔排序
- 下列关于排序稳定性的说法,正确的是( )。 {{ select(8) }}
- 排序前后相同元素的相对位置不变,称该排序算法稳定
- 时间复杂度更低的排序算法一定是稳定排序
- 不稳定的排序算法没有实际应用价值
- 所有基于比较的排序算法都是稳定的
- 快速排序算法在平均情况下的空间复杂度为( )。 {{ select(9) }}
- O(1)
- O(log n)
- O(n)
- O(n log n)
- 对基本有序的数组进行排序,下列算法中效率最高的是( )。 {{ select(10) }}
- 直接插入排序
- 快速排序
- 堆排序
- 简单选择排序
- 二分查找算法能够正常执行并得到正确结果的前提条件是( )。 {{ select(11) }}
- 数组元素数量不超过1000
- 数组元素为整型
- 数组元素有序
- 数组元素无重复值
- 二分查找算法在最坏情况下的时间复杂度为( )。 {{ select(12) }}
- O(n)
- O(n log n)
- O(log n)
- O(1)
- 下列关于贪心算法的说法,正确的是( )。 {{ select(13) }}
- 贪心算法总能得到问题的全局最优解
- 贪心算法要求问题具备贪心选择性质和最优子结构
- 贪心算法的时间复杂度一定高于动态规划算法
- 贪心算法需要回溯所有可能的情况来寻找最优解
- 要快速处理数组的区间和查询,最适合使用的基础算法是( )。 {{ select(14) }}
- 枚举算法
- 前缀和算法
- 贪心算法
- 深度优先搜索
- 下列位运算操作中,能够快速判断整数n为奇数的是( )。 {{ select(15) }}
- n & 1 == 1
- n | 1 == 1
- n ^ 1 == 1
- n >> 1 == 1
- 枚举算法的核心特点是( )。 {{ select(16) }}
- 逐一列举问题所有可能的解,逐一验证得到正确结果
- 仅通过一次遍历就能得到问题的最优解
- 时间复杂度固定为O(log n)
- 适用于数据规模极大的问题场景
- 下列关于差分算法的说法,正确的是( )。 {{ select(17) }}
- 差分算法可以快速处理数组的区间修改操作
- 差分算法的核心是快速计算数组的前缀和
- 差分算法无法处理一维数组,仅适用于二维数组
- 差分算法的时间复杂度为O(n²)
- 下列基础算法中,适用于求解“最优装载问题”“活动选择问题”的是( )。 {{ select(18) }}
- 贪心算法
- 枚举算法
- 前缀和算法
- 差分算法
- C风格字符串的结束标志是( )。 {{ select(19) }}
- '\n'
- '\0'
- 空格
- 逗号
- 已知大写字母'A'的十进制ASCII码为65,字符'0'的十进制ASCII码为48,则表达式'A' + 5的结果是( )。 {{ select(20) }}
- 70
- 'F'
- 5
- '5'
- C语言中,用于计算C风格字符串长度的库函数是( )。 {{ select(21) }}
- strcpy
- strcmp
- strlen
- strcat
- 下列关于C++ string类的说法,错误的是( )。 {{ select(22) }}
- 可以直接通过+运算符完成字符串拼接
- 提供size()成员函数获取字符串长度
- 无需手动处理字符串末尾的'\0'结束符
- 无法通过下标访问字符串中的单个字符
- 定义字符数组char s[10] = "hello";,该数组占用的内存字节数是( )。 {{ select(23) }}
- 5
- 6
- 10
- 9
- C语言中,用于比较两个C风格字符串大小的库函数是( )。 {{ select(24) }}
- strcmp
- strcpy
- strlen
- strcat
- 已知字符'a'的十进制ASCII码为97,字符'z'的十进制ASCII码为122,则表达式'z' - 'a'的结果是( )。 {{ select(25) }}
- 25
- 26
- -25
- '25'
二、判断题(共 15 题,每题 2.5 分,共计 37.5 分;判断下列说法的正误,每题有且仅有一个正确选项)
- 冒泡排序是稳定排序算法,简单选择排序是不稳定排序算法。( ) {{ select(26) }}
- 正确
- 错误
- 归并排序的平均、最好、最坏时间复杂度均为O(n log n)。( ) {{ select(27) }}
- 正确
- 错误
- 衡量外排序算法效率的核心指标是排序过程中的IO读写次数,而非元素比较次数。( ) {{ select(28) }}
- 正确
- 错误
- 堆排序是稳定排序算法,其空间复杂度为O(1)。( ) {{ select(29) }}
- 正确
- 错误
- 基数排序不需要进行元素之间的大小比较,其排序效率与数据范围相关。( ) {{ select(30) }}
- 正确
- 错误
- 二分查找算法可以在无序数组中执行,只是查找效率会降低。( ) {{ select(31) }}
- 正确
- 错误
- 贪心算法只要每一步选择局部最优解,最终一定能得到全局最优解。( ) {{ select(32) }}
- 正确
- 错误
- 前缀和算法可以快速处理数组的区间和查询,但单点修改的效率较低。( ) {{ select(33) }}
- 正确
- 错误
- 对一个整数进行左移一位的位运算,等价于将该整数乘以2。( ) {{ select(34) }}
- 正确
- 错误
- 枚举算法的时间复杂度通常较高,仅适用于数据规模较小的问题场景。( ) {{ select(35) }}
- 正确
- 错误
- C风格字符串的strlen函数计算长度时,会包含末尾的'\0'结束符。( ) {{ select(36) }}
- 正确
- 错误
- C++的string类可以自动管理内存,无需开发者手动分配和释放内存空间。( ) {{ select(37) }}
- 正确
- 错误
- 两个字符进行大小比较时,本质上是比较二者对应的ASCII码值的大小。( ) {{ select(38) }}
- 正确
- 错误
- strcmp函数比较两个字符串时,若两个字符串完全相同,返回值为1。( ) {{ select(39) }}
- 正确
- 错误
- 数字字符'9'减去字符'0',得到的结果是整数9。( ) {{ select(40) }}
- 正确
- 错误
相关
在以下作业中: