合并两个长度分别为m和n的有序表,最坏情况下需要比较m+n-1次

xiaoxiao2021-02-28  66

最坏的情况就是交叉的情况:

比如

1 3 5 2 4 6 2 4 6

设上链指针p,下链q,每次比较后较小节点依次作为“合并后链表的节点”,同时较小链指针后移。某链指空后不再比较。则楼上所给的第一个例子:第一步:1和2比,1小作为新节点,p移至3。第二步,3和2比,2小作为新节点,q移至4。第三步,3和4比,3小,p移至5。第四步,5和4比,4小,q移至6。第五步,5和6比,p指空。结束一共比较了5次=3+3-1。

最坏的情况实质上是让两指针都走完各自的链表,同时某链肯定先走,因为一次只移动一个指针,另一个链表无论怎样都会至少少走一,这就是m+n-1的含义

转载请注明原文地址: https://www.6miu.com/read-37822.html

最新回复(0)