1.1.下面关于选择排序说法正确的是()
A.、 每扫描一遍数组, 需要多次交换
B、 选择排序是稳定的排序方法,因为时间复杂度是固定的 O(n^2)
C、 选择排序排序速度一般要比冒泡排序快
D、 空间复杂度为 O(1)
解析:
选择排序的原理:
https://blog.csdn.net/weixin_41362649/article/details/81901091
选择排序(Selection sort)是一种简单直观的排序算法。
A. 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以每扫描一遍数组,只需要交换一次。
B. 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
C. 选择排序排序速度一般要比冒泡排序慢。
python range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法
range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.对于字符串"ABCDADA"的二进制哈夫曼编码有多少位?
A、 11
B、 12
C、 13
D、 14
解析:
哈夫曼树的构造方式:https://blog.csdn.net/qq_29519041/article/details/81428934
选 C
分析如下:
这题是考察哈夫曼的编码方式,它是根据字符出现频率构建的带权重二叉树确定每个字符编码的。
首先我们统计“ABCDADA”各个字符出现的频率:A-3,B-1,C-1,D-2。由出现的频率我们有以下哈夫曼二叉树:
所以最终“ABCDADA”整个字符串的编码为0 110 111 10 0 10 0。也就是说该字符串二进制哈夫曼编码位数为13位。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.