1. 程式人生 > >合併兩個長度分別為m和n的有序表,最壞情況下需要比較m+n-1次

合併兩個長度分別為m和n的有序表,最壞情況下需要比較m+n-1次

最壞的情況就是交叉的情況:

比如

1  3  5
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的含義