1、默认
冒泡:默认把最大的放到最后面
选择:默认把最小的放到最前面
插入:默认把最小的放到最前面
归并:默认从小到大排序
建堆:默认建大顶堆
快排:不动的值反而变了,递归次数与初始数据的排列次序有关,与每次划分后得到的分区处理顺序无关
- 简单选择排序它最大的特点是交换移动数据次数相当少,这样也就节约了相应的时间,无论最好最坏的情况,其比较次数都是一样多。第 i 次排序需要进行n-i 次关键字的比较,此时需要比较n-1+n-2+...+1=n(n-1)/2次,时间复杂度为O(n^2)。对于交换次数而言,当最好的时候,交换为0次,最差的时候,也就初始排序,交换次数为n-1次,复杂度为O(n)
- 归并的躺数的数量级是logN
- 希尔排序和堆排序都利用了顺序存储的随机访问特性,而链式存储不支持这种性质
- 插入排序和冒泡排序中,除去移动的元素外,其余的元素的相对位置不会变动
- 基数排序之外的排序都是比较排序
- 希尔排序注意:对应步长/增量为4的理解:步长/增量是从下一个元素开始记起
- 49、38(1)、65(2)、97(3)、76(4)、13、27、50
2、常见的算法时间复杂度由小到大依次为:
Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2)<Ο(n!)
3、
4、
所以可能的移动和比较的次数是在最小和最大之间就可以了
所以是从9—45,答案为D
5、
6、
答案:B
希尔排序注意:对应步长/增量为4的理解
例如:步长/增量为4,与49一组的只有76,怎么数呢?
- 从49之后第一个数标记为1,当遇数第四个,就是与49一组的数据。
- 然后再从已经标记为一组数之后第一个数标记为2。
- ......................其余方法与这个一样
49、38(1)、65(2)、97(3)、76(4)、13、27、50 所以答案为B
7、
答案:D
解析:因为-1和9进行了交换,所以9和-1是一组的,所以增量是4
8、
9、
简单选择排序它最大的特点是交换移动数据次数相当少,这样也就节约了相应的时间,无论最好最坏的情况,其比较次数都是一样多。第 i 次排序需要进行n-i 次关键字的比较,此时需要比较n-1+n-2+...+1=n(n-1)/2次,时间复杂度为O(n^2)。对于交换次数而言,当最好的时候,交换为0次,最差的时候,也就初始排序,交换次数为n-1次,复杂度为O(n)。
10、
11、
12、
13、
14、
15、
简单选择排序它最大的特点是交换移动数据次数相当少,这样也就节约了相应的时间,无论最好最坏的情况,其比较次数都是一样多。第 i 次排序需要进行n-i 次关键字的比较,此时需要比较n-1+n-2+...+1=n(n-1)/2次,时间复杂度为O(n^2)。对于交换次数而言,当最好的时候,交换为0次,最差的时候,也就初始排序,交换次数为n-1次,复杂度为O(n)
16、
17、
按次位即从最高位开始
18、
19、
20、
21、
22、
23、
24、
25、