#include<stdio.h>
#include<stdlib.h>
intgetMin(int[],int);//求最优合并算法比较次数
intgetMax(int[],int);//求最差合并算法比较次数
void quick_sort(int*,int,int);//快速排序,用来对各序列根据序列长度按从小到大排序
int main()
{
int data[100],n,i,min,max;
printf("请输入待合并的序列总个数K:\n");
scanf("%d",&n);
printf("请依次输入这些序列中的元素个数:\n");
for(i=1;i<=n;i++)
scanf("%d",&data[i]);
quick_sort(data,1,n);
max = getMax(data,n);
min = getMin(data,n);
printf("1.最优合并算法的比较次数为:%d\n2.最差合并算法的比较次数为 %d\n",min,max);
system("pause");
return 0;
}
intgetMin(int data[100],int n)
{
int sum=0,i;
if(n==1) return data[n];
for(i=1;i<n;i++)
{
sum+=data[i]+data[i+1]-1;
data[i+1]=data[i]+data[i+1];
quick_sort(data,i+1,n);
}
return sum;
}
intgetMax(int data[],int n)
{
inti,sum=0,amount;//sum记录当前比较次数的总和,amount当前最大序列的长度
amount = data[n];
if(n==1) return amount;
for(i=n-1;i>=1;i--)
{
编程5大经典算法(含源代码)_计算机软件及应用_IT...合并排序 (6)快速排序 (7)线性时间选择 (8)最...贪心算法解的题目,贪心解的确不错,可惜不是最优解...
局部最 优选择即贪心选择来达到; 最优子结构性质; 最优子结构性质 贪心算法与...经过n-1次的合并后,优先 队列中只剩下一棵树,即所要求的树T。 程序代码见...
源代码: 仅附文件输入输出版本,标准输入输出版本见 cpp 代码文件) (仅附文件...最优合并( 最优合并(原算法实现题 4-2) )问题描述:已知 k 个排好序的...
问题类似 Huffman 树, 面值即为频率, 合并的先后决定参与合并的次数, 即为树...故算法是正确的。 答:1>伪代码如下: 2>贪心选择性: 即证存在最优选择包含 ...
? 掌握贪心算法的基本要素 (1)最优子结构性质 (2...1、前缀码对每一个字符规定一个0,1串作为其代码,...算法以C个叶结点开始,执行C-1次的“合并”...
处最优服务次序问题(含源代...2. 五.心得体会 通过本次实验,我了解了贪心算法的性质与解题思路。会场安排...
产生整体最优解 在一些情况下,即使贪心算法不能得到...19 前缀码对每一个字符规定一个0/1串作为其代码,...算法以C个叶结点开始,执行C-1次的“合并 ...
6 ? ? 活动安排贪心算法伪代码 Template<class Type> Void GreedySelector(int ...则从该最 优解中拿出所含的物品j的那部分重量w,剩余的将 是n - 1个原重...
第4章 贪心算法(1-例子)_物理_自然科学_专业...用贪心选择当前要合并的2棵具有最小频率的树; ? ...初始时,S中仅含有源。设u是G的某一个顶点, 把...
热门文档