分类
Level4

排序算法

1、使用冒泡排序对序列进行升序排列,每执行一次交换操作,系统将会减少 1 个逆序对。因此序列 5,4,3,2,1 需要执行( )次操作,才能完成冒泡排序。
A.0
B.5
C.10
D.15
2、基于比较的排序时间复杂度的下限是( ),其中 n 表示待排序的元素个数。
A.O(n)
B.O(nlog2n)
C.O(log2n)
D.O(n2)
3、快速排序最坏情况下的算法时间复杂度为:
A.O(n)
B.O(nlog2n)
C.O(log2n)
D.O(n2)
4、排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪种排序算法是不稳定的:
A.冒泡排序
B.插入排序
C.归并排序
D.快速排序
5、数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( )次。
A.4
B.5
C.6
D.7
6、体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。
A.快速排序
B.插入排序
C.冒泡排序
D.归并排序
7、( )的 平均时间复杂度为 O(n log n),其中 n 是待排序的元素个数。
A.快速排序
B.插入排序
C.冒泡排序
D.基数排序
8、以下排序算法中,不需要进行关键字比较操作的算法是( )。
A.基数排序
B.冒泡排序
C.堆排序
D.直接插入排序
9、给定一个含 N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要 N – 1 次比较操作。则最坏情况下,在该数组中同时找最大与最小的数至少需要( )次比较操作。(⌈ ⌉表示向上取整,⌊ ⌋表示向下取整)
A.⌈3N / 2⌉ – 2
B.⌊3N / 2⌋ – 2
C.2N – 2
D.2N – 4
10、设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的数组,任何以元素比较作为基本运算的归并算法在最坏情况下至少要做( )次比较。
A.n2
B.nlogn
C.2n
D.2n-1