`
vearne
  • 浏览: 18347 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

堆排序代码实现

 
阅读更多

 

void heap_adjust(int a[],int i,int size){
	int temp;
	int j = i*2 +1;
	if(i<=size/2-1){ //保证其为非叶子节点----这里请注意
		if(j+1<size&&a[j]<a[j+1]){
			//找出子节点中值最大的
			j++;
		}
		if(a[i]<a[j]){
			temp = a[i];
			a[i] = a[j];
			a[j] = temp;
			heap_adjust(a,j,size);
		}
		
	}

}
void make_heap(int a[],int size){
	//i = (size -2)/2  但是这样写的话,对于size等于 1的情况会导致错误 ----这里请注意
	for(int i=size/2-1;i>=0;i--){
		heap_adjust(a,i,size);
	}

}
void heap_sort(int a[],int size){
	make_heap(a,size);
	int temp;
	for(int i=size-1;i>0;i--){
		// a[0] <--> a[i]  swap
		temp = a[0];
		a[0] = a[i];
		a[i] = temp;
		heap_adjust(a,0,i);
	}

}
 

 

分享到:
评论

相关推荐

    堆排序的c++实现代码

    堆排序的c++实现代码

    C++实现堆排序

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

    堆排序13.py 使用python代码实现

    堆排序13.py 使用python代码实现堆排序13.py 使用python代码实现堆排序13.py 使用python代码实现堆排序13.py 使用python代码实现堆排序13.py 使用python代码实现堆排序13.py 使用python代码实现堆排序13.py 使用...

    堆排序12.java 使用java代码实现

    堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用...

    堆排序.py 使用python的代码实现

    堆排序.py 使用python的代码实现堆排序.py 使用python的代码实现堆排序.py 使用python的代码实现堆排序.py 使用python的代码实现堆排序.py 使用python的代码实现堆排序.py 使用python的代码实现堆排序.py 使用python...

    堆排序c++实现源代码

    c++实现堆排序算法,简单的console application,对一个数组进行排序

    堆排序实现c++代码和介绍实例

    堆排序呢认识文档。、,其中对于堆排序做了一些介绍和一些例子

    堆排序10.cpp 还是使用C++代码实现的

    堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码...

    堆排序 c++实现 可运行

    堆排序算法的c++实现,包括建堆,堆排序等。算法和复杂度参考《算法导论》。

    堆排序代码

    内部排序之堆排序的具体代码实现,简单同时也易于看懂

    堆排序算法 C语言实现

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

    堆排序算法实现堆排序

    自己编写的堆排序算法实现函数,本人亲测过绝对好使的代码,在这里与大家分享交流,希望能够给你带来帮助

    c语言实现堆排序算法 heapsort

    堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 堆排序的平均时间复杂度为Ο...

    选择排序(内包含有:简单选择排序,堆排序的C++代码实现)

    讲解了选择排序的基本原理,并用C++实现了简单选择排序,和堆排序算法,并进行了算法复杂度的分析。

    从文件中读数据并将其堆排序C实现

    现在一文件中写入数据,后从文件中读出数据,之后构造堆和堆排序

    直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码

    直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码 使用C#实现的数据结构中的排序算法

    堆排序 Java代码示例

    堆排序是一种高效的比较类排序算法,它利用了二叉堆的数据结构来实现排序。堆排序可以分为两个主要步骤:建堆(将无序的元素构建成一个堆)和排序(利用堆的性质进行排序)。 代码首先定义了一个HeapSort类,其中...

    堆排序Java代码示例

    堆排序是一种高效的比较类排序算法,它利用了二叉堆的数据结构来实现排序。堆排序可以分为两个主要步骤:建堆(将无序的元素构建成一个堆)和排序(利用堆的性质进行排序)。 代码首先定义了一个HeapSort类,其中...

    堆排序源代码 c++实现

    堆排序源代码 C++实现 代码简介易懂 欢迎下载

Global site tag (gtag.js) - Google Analytics