堆排序算法如下:
public void HeapSort(int[] a, int length)
{
int temp;
int loc=length/2-1;
for(int i=loc;i>=0;i--)
AdjustHeap(a,i,length-1);
for(int j=a.length-1;j>=1;j--)
{
temp=a[0];
a[0]=a[j];
a[j]=temp;
AdjustHeap(a,0,j-1);
}
}
public void AdjustHeap(int[] a, int low, int length)
{
int key=a[low];
int i;
for(i=2*low;i<=length-1;i*=2)
{
if(i+2<=length && a[i+2]>=a[i+1])
i++;
if(key>a[i+1])
break;
a[low]=a[i+1];
low=i+1;
i++;
}
a[low]=key;
}
数据结构排序算法总结,C++版,参看地址http://www.cnblogs.com/mingcn/archive/2010/10/17/Sort.html#4
分享到:
相关推荐
堆排序--大顶堆排序
最快的排序算法 谁才是最强的排序算法:快速排序-归并排序-堆排序,排序算法数据结构
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
堆排序-flash演示 可自己输入数据............
8.12-8.19_冒泡_选择_插入_希尔_快速_归并_基数_堆排序_排序算法Swift代码及UI演示
算法-理论基础- 排序- 堆排序(包含源程序).rar
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
多线程实现排序算法的比较:希尔排序、快速排序、堆排序。用java语言实现,很经典,需要的可以下载看看!
c语言实现堆排序。代码实现的是建立大根堆
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
C语言版的排序方法---堆排序,非常有用的代码,可以实际中使用。
常用的排序算法--堆排序,通过创建堆的方法进行排序
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
希尔排序,堆排序,快速排序,简单选择排序,插入排序,冒泡排序
直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码 使用C#实现的数据结构中的排序算法
各种排序算法,包括希尔算法,快速排序,堆排序-A variety of sorting algorithms, including the Hill algorithm, quick sort, heap sort
讲解了选择排序的基本原理,并用C++实现了简单选择排序,和堆排序算法,并进行了算法复杂度的分析。
这是我的博客 《漫谈经典排序算法:一、从简单选择排序到堆排序的深度解析》中涉及到的源代码,详细解析请关注本人博客 http://blog.csdn.net/Touch_2011
该程序通过利用基本的存储结构堆对线性表进行排序,突出强调了堆的重要性。