数据结构 排序
来源:互联网 发布:中邮网络培训学院官网 编辑:程序博客网 时间:2024/06/06 09:21
1 对n个数字进行排序,期中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是?
两两不同的数字的个数为k,因为不知道确定的数字范围,桶排序不适合,又因为 n远远大于k, 本题使用hash表来统计,首先获得k个数及其每个数出现的次数,然后对k个数进行排序,排序的 复杂度可忽律不计,实际上就是遍历一遍n个数字,所以本位复杂度为O(n)。
2 已知数组元素基本有序的情况下,下面采用那个算法对数组排序时间复杂度最低()
直接选择排序
堆排序
快速排序
插入排序
3 n个数值选出最大m个数(3<m<n)的最小算法复杂度是
O(n)
O(nlogn)
O(logn)
O(mlogn)
O(nlogm)
O(mn)
(11 5 7 2 3 17)
(11 5 7 2 13 3)
(17 11 7 2 3 5)
(17 11 7 5 3 2)
(17 7 11 3 5 2)
(17 7 11 3 2 5)
------------在排序方法中,元素比较次数与元素的初始排列无关的是()
Shell 排序
归并排序
直接插入排序
选择排序
关于归并可以这么解释。首先归并排序中 merge的任务是把两个有序数组合并为一个有序数组。假设A,和B为两个有序数组,合并为一个有序数组C,最好情况比较n/2次(n为数组C的长度,假设数组A和数组B等长,都为n/2),这种情况的前提条件是数组A中最小的元素比数组B中最大的元素要大。那么只要A[0]和B中所有元素都比较过一遍以后,数组A中的其他元素就不用比较了,所以比较了n/2次。最坏情况元素错落,A[0]和B[0]比,假设得出A[0]以后,A[0]先和B[1]比,B[1]再和A[1]比,A[1]再和B[2]比..........那就是n-1次。不知道自己分析的对不对,还是有点疑惑。我的疑惑是归并算法它的时间复杂度不管最好最坏都是一样的O(nlogn),它和比较次数难道没有关系吗?求大神回答。
n/2和n-1在计算复杂度的时候算作一个数量级n
有关选择排序的叙述中正确的是( )
正确答案 : AD您的答案 : BD
A每扫描一遍数组,只需要一次交换B每扫描一遍数组,需要多次交换C选择排序是稳定的排序方法D空间复杂度为O(1)
1、有关选择排序的叙述正确的有:
(1)每扫描一遍数组,只需要一次交换。
(2)空间复杂度为O(1)。
(3)选择排序是不稳定的排序算法。
2、常见的稳定的排序算法有:
(1)直接插入排序;
(2)冒泡排序;
(3)归并排序;
(4)基数排序。
3、常见的不稳定的排序算法有:
(1)简单选择排序;
(2)希尔排序;
(3)快速排序;
(4)堆排序。
关于堆排序复杂度分析的叙述中正确的是( )
正确答案 : ABCD您的答案 : ACD
A堆排序的时间复杂度为O(nlogn)B整个构建堆的时间复杂度为O(n)C堆排序的空间复杂度为O(1)D堆排序是一种不稳定的排序算法
关于堆排序复杂度分析叙述正确的有:
(1)堆排序的时间复杂度为O(nlogn);
(2)整个构造堆的时间复杂度为O(n);
(3)堆排序的空间复杂度为O(1);
(4)堆排序是一种不稳定的排序算法。
- 数据结构-排序
- 数据结构----排序
- 数据结构 - 排序
- 数据结构--排序
- 数据结构排序
- 数据结构 排序
- 数据结构排序
- 数据结构-----排序
- 数据结构排序
- 数据结构--排序
- 数据结构 排序
- 排序 - 数据结构
- 数据结构-排序
- 数据结构 - 排序
- 【数据结构】排序
- 数据结构 - 排序
- 数据结构-排序
- 数据结构排序
- 瀑布流实现的三种方法js jq css3
- 用Javascript实现Trie树的代码(即前缀树)
- Android Gradle实用技巧(一) | 隐藏Android签名文件和密钥信息
- 命令模式
- 如何卸载已安装的NiceLabel 2017
- 数据结构 排序
- LCS模板
- 侧边栏使用
- android LeakCanary检测内存泄漏
- css3 文字动画效果
- 面试中常问的排序算法
- 使用 Intellij Idea 导出JavaDoc
- [Winform]WebKit.Net使用
- ArcGIS中的一些影像格式:.ige .img .rde .rrd