将两个各有 N 个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.N
B.2N -1
C.2N
D.N -1
【答案】 A
【解析】 归并排序基本思想 :归并排序是多次将两个或两个以上的有序表合并成一个新的有序
表。最简单的归并是直接将两个有序的子表合并成一个有序的表。归并排序最好情况下的复杂度
为 O(n)。
延伸:
将两个各有 N 个元素的有序表归并成一个有序表,其最多的比较次数是( )。
A.N
B.2N -1
C.2N
D.N -1
【答案】 B
【解析】最多的比较次数是当两个有序表的数据刚好是插空顺序的时候,比如:第一个序列是1,3,5,第二个序列是2,4,6,把第二个序列插入到第一个序列中,先把第二个序列中的第一个元素2和第一个序列依次比较,需要比较2次(和1,3比较),第二个元素4需要比较2次(和3,5比较,因为4比2大,2之前的元素都不用比较了),第三个元素6需要比较1次(只和5比较),所以最多需要比较5次。即2n-1次。