算法导论中堆排序c语言实现
来源:互联网 发布:nat123如何解析tk域名 编辑:程序博客网 时间:2024/05/18 15:56
#include<stdio.h>
void swap(int * a,int *b){
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void maxHeapify(int a[],int len,int i){
int l = 2*i;
int r = 2*i+1;
int largest = i;
if(l<len&&a[l]>a[largest]){
largest = l;
}
if(r<len&&a[r]>a[largest]){
largest = r;
}
if(largest!=i){
swap(&a[i],&a[largest]);
maxHeapify(a,len,largest);
}
}
void buildMaxHeap(int a[],int len){
for(int i = len/2-1;i>=0;i--){
maxHeapify(a,len,i);
}
}
void heapSort(int a[],int len){
buildMaxHeap(a,len);
for(int i = len-1;i>0;i--){
swap(&a[i],&a[0]);
maxHeapify(a,i,0);
}
}
int main(){
int test[] = {5,13,2,25,7,17,20,8,4,1};
heapSort(test,10);
for(int i=0;i<10;i++){
printf("%d\n",test[i]);
}
return 0;
}
void swap(int * a,int *b){
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void maxHeapify(int a[],int len,int i){
int l = 2*i;
int r = 2*i+1;
int largest = i;
if(l<len&&a[l]>a[largest]){
largest = l;
}
if(r<len&&a[r]>a[largest]){
largest = r;
}
if(largest!=i){
swap(&a[i],&a[largest]);
maxHeapify(a,len,largest);
}
}
void buildMaxHeap(int a[],int len){
for(int i = len/2-1;i>=0;i--){
maxHeapify(a,len,i);
}
}
void heapSort(int a[],int len){
buildMaxHeap(a,len);
for(int i = len-1;i>0;i--){
swap(&a[i],&a[0]);
maxHeapify(a,i,0);
}
}
int main(){
int test[] = {5,13,2,25,7,17,20,8,4,1};
heapSort(test,10);
for(int i=0;i<10;i++){
printf("%d\n",test[i]);
}
return 0;
}
- 算法导论中堆排序c语言实现
- 堆排序C语言实现 算法导论
- 算法导论C语言实现: 堆排序
- 算法导论 堆排序 C语言实现
- 算法导论:堆排序递归实现 (c语言)
- 算法导论:堆排序非递归实现(c语言)
- 算法导论 之 堆排序[C语言]
- 算法导论-堆排序-C语言
- 算法导论,堆排序,c实现。
- 算法导论C语言实现: 快速排序
- 算法导论C语言实现: 计数排序
- 【算法导论】归并排序,C语言实现
- 算法导论(Introduction to Algorithms)之堆排序(C语言实现)
- 【算法导论】堆排序实现
- 算法导论堆排序实现
- 《算法导论》7、堆排序实现(C++)
- c语言 实现堆排序算法
- 堆排序算法(c 语言实现)
- error: Failed dependencies错误解决方法
- Useful or beautiful ??
- SHA 加密算法
- 练习
- eclipse的内存配置
- 算法导论中堆排序c语言实现
- jsp传入后台_乱码
- 内核编程调试技术(1)
- 「翻译」C# 中的高性能计时器(Daniel Strigl著,野比译)
- VC 为程序创建快捷方式的详细讲解
- 努力工作-好好学习 2012-01-05
- 微软软件开发技术二十年回顾-COM、OLE、ActiveX及COM+篇
- 自己写的一个小函数,可以加载一张网络图片。
- Enabling table-level supplemental logging【每日一译】--20130105