• 博客(0)
  • 资源 (1)

空空如也

代码c++ 最大堆最小堆

最大堆最小堆 问题的提出 给定k个排好序的序列S1,S2…,Sk,用2路合并算法将这k个序列合并成一个序列。假设所采用的2路合并算法合并2个长度分别为m和n的序列需要m+n-1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。 原理分析 这个程序比较适合用堆,最优用最小堆,最差用最大堆; 以最优合并为例: (1)使用各序列的长度建堆; (2)两个最小的元素出堆,计算这两序列合并需要的比较次数,该次数入堆; (3)重复(2),直到堆只剩下一个元素; 最后剩下的元素即为题目的解。

2013-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除