总结一些数据结构题目:
- 将两个各有 N 个元素的有序表归并成一个有序表,最少的比较次数是( ),最多的比较次数是( )。
A.N
B.2N -1
C.2N
D.N -1
【答案】 A B
【解析】 归并排序基本思想 :归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。归并排序最好情况下的复杂度为 O(n)。简单举例来说,就是当一个表中的最小元素比第二个表中的最大元素还要大,例如:0 1 2 3 4 和 5 6 7 8 9,排序时需要将5与01234逐一比较(即共需要比较5次,就可以归并得出结果)。
最多的比较次数是当两个有序表的数据刚好是插空顺序的时候,比如:第一个序列是1,3,5,第二个序列是2,4,6,把第二个序列插入到第一个序列中,先把第二个序列中的第一个元素2和第一个序列依次比较,需要比较2次(和1,3比较),第二个元素4需要比较2次(和3,5比较,因为4比2大,2之前的元素都不用比较了),第三个元素6需要比较1次(只和5比较),所以最多需要比较5次。即2n-1次。