1 / 5
文档名称:

C# 排序算法之堆排序.doc

格式:doc   大小:32KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C# 排序算法之堆排序.doc

上传人:taoapp 2022/4/17 文件大小:32 KB

下载得到文件列表

C# 排序算法之堆排序.doc

相关文档

文档介绍

文档介绍:C# 排序算法之堆排序
这里是指一种数据结构,而不是我们在C#中提到的用于存储引用类型对象的地方。它可以被当成一棵完全二叉树。
一、基本概念
堆:这里是指一种数据结构,而不是我们在C#中提到的用于存储引用类型对象的地方C# 排序算法之堆排序
这里是指一种数据结构,而不是我们在C#中提到的用于存储引用类型对象的地方。它可以被当成一棵完全二叉树。
一、基本概念
堆:这里是指一种数据结构,而不是我们在C#中提到的用于存储引用类型对象的地方。它可以被当成一棵完全二叉树。
为了将堆用数组来存放,这里对每个节点标上顺序。事实上,我们可以用简单的计算公式得出父节点,左孩子,右孩子的索引:
parent(i) =
left(i) = 2i
right(i)=2i + 1
最大堆和最小堆: 最大堆是指所有父节点的值都大于其孩子节点的堆,即满足以下公式:
A[parent[i]]A[i](A是指存放该堆的数组)
最小堆相反。
最大堆和最小堆是堆排序的关键,可知最大堆的根节点是堆中最大的节点。因此只要我们构造出最大(小)堆,最大(小)的元素也就得到了,然后再对剩下的元素继续构造最大(小)堆,就可以取出第二大(小)的元素,依此类推,直到排序完成。
二、构造最大(小)堆
我们已经得知构造最大(小)堆是堆排序的关键,下面就来看看如何构造最大堆。
万事开头难,首先来看一种特殊的情形吧:堆的根节点的左子树和右子树都已经是最大堆了,然而根节点却比孩子节点小,当然,这个堆不满足最大堆的定义。为了⑩这个堆成为最大堆,我们可以按如下步骤操作:
(1)将根节点与左右孩子中最大的交换
(2)交换之后可能会面临左或右子树不是最大堆的问题,但由于整个左(右)子树一开始就是最大堆,问题又回到了最开始的状态,因此只要如此反复即可得到最大堆。
对于上面的特殊堆已经找到了解决办法,但对于一般意义上的堆呢?
我们可以选择自底向上来构造:叶子节点是特殊的最大堆,举个例子有叶子节点a,b,它们的父节点是p;a,b肯定已经是最大堆了,这是要保证a,b,p组成的子树是最大堆。这个堆很眼熟是不是?没错,它就是前面提到的特殊的堆。在a,b,p组成的子树变成最大堆后,我们又可以类似的使该子树,该子树的父节点,以及同胞子树(或节点)组成的新子树成为最大堆,如此类推,最终使堆变为最大堆。
对于求解最小堆与此类似。
三、实现
完整代码:
复制代码代码如下:
namespace HeapSort
{
using System;
class Program
{
static int heapSize =0;
static void Main(string[] args)
{
var heap = new[] { -1, 10, 5, 12, 77, 54, 7, 34, 23, 11 };//为了方便,索引0处不存放元素(或存放无用元素)
heapSize = - 1;
BuildMaxHeap(heap);
for (var i = - 1; i >= 2; i--)
{
//,将第一个元素和最后一个元素交换;
//

最近更新

Cr-Zr-Mg-Cu缝焊电极焊接中的裂纹分析 2页

2025年工商管理实习自我鉴定怎么写 15页

林地承包出租合同 6页

2025年工勤人员年度考核登记表个人总结5篇 13页

BD2F钢亚温气体碳氮共渗和淬火工艺研究与应用.. 2页

2025年工作总结财务统计报告 15页

村民土地互换合同协议 6页

酒店水电工程设计、施工一体化合同(2025年度.. 9页

游泳馆升级改造装修协议 9页

报价后客户不回复怎么办 45页

6CrNiMnSiMoV钢冷处理工艺 2页

604型双重造影硫酸钡混悬剂(干品)技术鉴定会 2页

殡葬车辆运输安全协议 9页

标准货物运输承运合同模板 9页

4500米钻机提升系统静动态载荷测试的初步分析.. 2页

2025年属龙本命年2025年应注意什么 4页

30万千瓦汽轮机第十二压力级叶片事故分析 2页

建筑工程居间合同样本范本 8页

酒店绩效考核的问题与对策 5页

论“霍桑实验”在公共部门人力资源管理中的应.. 5页

有限责任公司合作投资合同协议 7页

环保企业人力资源管理策略 4页

学校图书馆书架安装合同 9页

本科会计论文选题及提纲 6页

大规模风电并网背景下火电调峰行为演化博弈模.. 2页

技能型人才培养与成长规律研究课题申请评审书.. 5页

年终绩效考核 4页

工商管理专业毕业论文优秀4 6页

小议企业文化在企业管理中的作用 6页

宝鸡文理学院论文开题报告模版-清爽大气完整版.. 5页