`
bianku
  • 浏览: 72232 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

堆排序算法的实现

阅读更多
#include <stdio.h> 
void adjust(int *list,const int root,const int n); 
void HeapSort(int *list,const int n) 
{ 
int i=0; 
for(i=n/2;i>=1;i--) 
adjust(list,i-1,n); 
int t=list[n]; 
list[n]=list[0]; 
list[0]=t; 
if(n>1) 
HeapSort(list,n-1); 
else 
{ 
int t=list[1]; 
list[1]=list[0]; 
list[0]=t; 
} 
} 
void adjust(int *list,const int root,const int n) 
{ 
int e=list[root]; 
int k=e,j=0; 
for(j=2*root;j<=n;j*=2) 
{ 
if(j<n) 
if(list[j]<list[j+1]) 
j++; 
if(k>=list[j]) 
break; 
list[j/2]=list[j]; 
} 
list[j/2]=e; 
} 
int main(int argc,char **argv) 
{ 
int i=0; 
int src[10]={26,5,77,1,61,11,59,15,48,19}; 
HeapSort(src,9); 
i=0; 
while(i<10) 
{ 
printf("%d,",src[i]); 
i++; 
} 
}  
 
 
 

 

分享到:
评论

相关推荐

    堆排序算法实现

    ### 堆排序算法实现详解 #### 一、引言 堆排序是一种高效的排序方法,其核心在于构建和调整二叉堆(一种完全二叉树结构)。本篇文章将基于《算法导论》第六章的内容,深入探讨堆排序的实现原理,并通过具体的C语言...

    最小堆排序算法实现

    算法设计课程中的最小堆排序算法实现,windows下实现。

    堆排序算法 C语言实现

    C语言实现的堆排序算法。 提供了堆排序算法的一个接口,可以为其它功能提供功能。

    堆排序算法实现堆排序

    三、堆排序的算法实现 以下是一个简单的C++实现堆排序的例子: ```cpp #include using namespace std; void heapify(int arr[], int n, int i) { int largest = i; // 初始化最大值为根节点 int left = 2 * i ...

    hepafy方式的堆排序算法实现

    Building a heap using heapfying堆排序算法的实现即通过保持堆的特性,建堆,并实现对数组的排序操作。

    C++堆排序实现算法

    简单的堆排序算法:以定长数组为例,动态数组等可以以此类推

    堆排序算法(java)

    java的堆排序算法实现程序,含测试,可直接运行。java的堆排序算法实现程序,含测试,可直接运行。

    基于FPGA的堆排序算法实现与改进.pdf

    本文的研究重点在于FPGA上堆排序算法的实现与改进,对于FPGA硬件技术及硬件开发领域具有较高的参考价值。通过详细的设计方案和实验结果,为FPGA在复杂信号处理中的应用提供了新的思路和方法。这对于涉及数字信号调制...

    应用Java和Python分别实现堆排序算法

    堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和Python分别实现堆排序算法; 堆排序:应用Java和...

    堆排序算法实例

    在编程环境中,如VC6.0(Visual C++ 6.0),开发者可以编写代码来实现堆排序算法,并通过测试案例验证其正确性。这通常涉及到创建一个堆,调整元素,以及将最大元素(对于大顶堆)移出堆的过程。 描述中提到的...

    c语言实现堆排序算法

    ### c语言实现堆排序算法 堆排序是一种基于比较的排序算法,它利用了二叉堆的数据结构特性来高效地对数据进行排序。堆排序可以分为最大堆和最小堆两种,其中最大堆指的是父节点的值总是大于或等于任意一个子节点的...

    堆排序算法简单实现

    3. **完整过程**:堆排序算法通常包含两个阶段,构建堆和交换下沉。首先,通过从最后一个非叶子节点开始,自上而下地调整整个序列,使其成为一个合法的堆。然后,在这个过程中不断交换堆顶元素和末尾元素,每次交换...

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    C++实现堆排序

    1、 实现堆排序算法。 2、 理论分析并实验验证堆排序算法的时间复杂度。

    C++实现希尔、快速、堆排序、归并排序算法

    本文将详细介绍C++中实现的希尔排序、快速排序、堆排序和归并排序这四种经典排序算法。 希尔排序,由Donald Shell于1959年提出,是一种改进的插入排序。它的基本思想是通过设置一个增量序列,将待排序的元素按照...

    7大排序算法实现程序(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)

    本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...

    堆排序算法源代码

    在这个名为"sort"的压缩包中,很可能包含了实现堆排序算法的C/C++源文件。 堆排序的核心思想是利用树形数据结构——堆(Heap)来完成排序。堆是一个近似完全二叉树的结构,同时满足大顶堆(父节点的值大于或等于其...

    排序算法编程 堆排序 快速排序

    本主题将深入探讨四种常见的排序算法:堆排序、快速排序以及两种未在标题中明确提到但同样重要的排序方法——基数排序和计数排序。 首先,让我们详细了解一下堆排序。堆排序是一种基于比较的排序算法,利用了数据...

    排序算法之堆排序算法:用C++语言实现堆排序算法

    标题"排序算法之堆排序算法:用C++语言实现堆排序算法",意味着我们将讨论如何用C++编程语言来实现堆排序的过程。C++是面向对象的编程语言,具有丰富的库支持和高效的执行性能,是实现算法的理想选择。 描述"排序...

Global site tag (gtag.js) - Google Analytics