设有6个有序表A、B、c、D、E、F,分别含有10、35、40、50、60和200个数据元素,各表中元素按升序排列。要求通过5次两两合并,将6个表最终合并成1个升序表,并在最坏情况下比较的总次数达到最小。请回答下列问题。 给出完整的合并过程,并求出最坏情

admin2014-01-14  32

问题 设有6个有序表A、B、c、D、E、F,分别含有10、35、40、50、60和200个数据元素,各表中元素按升序排列。要求通过5次两两合并,将6个表最终合并成1个升序表,并在最坏情况下比较的总次数达到最小。请回答下列问题。
给出完整的合并过程,并求出最坏情况下比较的总次数。

选项

答案6个表的合并顺序如下页图所示。根据下页图中的哈夫曼树,6个序列的合并过程为:第1次合并:表A与表B合并,生成含45个元素的表AB;第2次合并:表AB与表c合并,生成含85个元素的表ABC;第3次合并:表D与表E合并,生成含110个元素的表DE;第4次合并:表ABc与表DE合并,生成含195个元素的表ABCDE;[*]第5次合并:表ABcDE与表F合并,生成含395个元素的最终表。由于合并两个长度分别为m和n的有序表,最坏情况下需要比较m+n—1次,故最坏情况下比较的总次数计算如下:第次合并:最多比较次数=10+35一1=44第2次合并:最多比较次数=45+40—1=84第3次合并:最多比较次数=50+60—1=109第4次合并:最多比较次数=85+110一1=194第5次合并:最多比较次数=195+200一1=394比较的总次数最多为:44+84+109+194+394=825。

解析
转载请注明原文地址:https://kaotiyun.com/show/9qxi777K
0

最新回复(0)