减治法解决堆排序_第1页
减治法解决堆排序_第2页
减治法解决堆排序_第3页
减治法解决堆排序_第4页
减治法解决堆排序_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法分析实验报告减治法-堆排序学生姓名:专业:班级:学号:指导教师:2017年6月12日目录一、实验题目 2二、实验目的 2三、实验要求 2四、实现过程 31、实验设计: 32、调试分析: 63、运行结果: 错误!未定义书签。4、实验总结: 7五、参考文献 72.图解过程474735352626201872018713 1310104735262018713107101318352647207101318352647207101318352647203.算法实现void

SiftHeap(int

r[],int

k,int

n)

{

int

i,j,temp;

i=k;j=2*i+1;

while(j<n)

{

if(j<n-1&&r[j]<r[j+1])

j++;

if(r[i]>r[j])

break;

else

{

temp=r[i];

r[i]=r[j];

r[j]=temp;

i=j;j=2*i+1;

}

}

}

void

HeapSort(int

r[],int

n)

{

int

i,temp;

for(i=(n-1)/2;i>=0;i--)

SiftHeap(r,i,n);

for(i=1;i<=n-1;i++)

{

temp=r[0];r[0]=r[n-i];r[n-i]=temp;

SiftHeap(r,0,n-i);

}

}2、调试分析:算法Sift将根结点与左右子树的根结点进行比较,若不满足堆的条件,则将根结点与左右子树根结点的较大者进行交换,所以,每比较一次,需要调整的完全二叉树的问题规模就减少一半,因此,其时间性能是O(㏒₂n)。3、运行结果:4、实验总结:通过本次实验加深了我对减治法的理解,同时对用、减治法解决一个实际问题有了一个更深层次的认识。通过本次实验使我掌握了减治法递归的一般模式,以后在解决一类问题时可以照着这个模式编写程序。通过本次试验,自己基本上掌握上述算法原理,达到实验的目的。五、参考文献[1]王红梅胡胡《算法设计与分析》(第2版),北京:清华大学出版社

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论