堆排序(Heap_Sort)模板
来源:互联网 发布:mac重新启动后卡住了 编辑:程序博客网 时间:2024/05/29 07:18
笔记笔记!以后直接用
#include <stdio.h>#include <stdlib.h>#include <string.h>#define LEFT(i) ((i)<<1)#define RIGHT(i) ((i)<<1|1)void Swap(int *a, int *b){int tmp = *a;*a = *b;*b = tmp;}void Max_Heap(int *A, int i, int n){int l = LEFT(i);int r = RIGHT(i);int largest;if(l <= n && A[l] > A[i])largest = l;else largest = i;if(r <= n && A[r] > A[largest])largest = r;if(largest != i){Swap(&A[i], &A[largest]);Max_Heap(A, largest, n);}}void Build_Max_Heap(int *A, int n){int i;for(i=n/2; i>0; i--){Max_Heap(A, i, n);}}void Heap_Sort(int *A, int n){Build_Max_Heap(A, n);int i;for(i=n; i>=2; i--){Swap(&A[i], &A[1]);n--;Max_Heap(A, 1, n);}}int main(){int a[] = {-1, 3, 2, 6, 4, 5, 7, 5, 8, 1, 9, 0};//下标1~11为待排序元素Heap_Sort(a, 11);int i;for(i=1; i<12; i++)printf("%d ", a[i]);printf("\n");return 0;}
0 0
- 堆排序(Heap_Sort)模板
- 堆排序Heap_Sort
- 堆--堆排序--heap--heap_sort
- 堆排序(heap_sort)的两种方法
- 排序算法之堆排序<Heap_Sort>及其C语言代码实现
- 堆 build_heapify() heap_sort() C++实现
- heap_sort
- heap_sort
- heap_sort
- 堆排序(可以作为模板)
- 【ACM模板】堆排序
- 堆排序模板
- C++堆排序模板
- 堆排序【模板】
- 堆排序模板
- 堆排序模板
- C++模板堆排序
- 【模板】堆排序
- JDK,JRE,JVM的区别与联系
- android 性能分析,traceview android自带的性能分析工具,traceview的使用
- #百度地图# android.view.InflateException: Binary XML file line Error inflating class com.baidu.mapapi.ma
- 加载不同位置的配置文件的两种方式
- eclipse maven plugin 插件 安装 和 配置
- 堆排序(Heap_Sort)模板
- hdu 5185 dp(完全背包)+优化
- win7安装jdk
- android使用StrictMode进行应用优化
- Less
- 安卓入门学习笔记a4之实用短代码
- 异步任务AsyncTask
- leetcode_num112_Path Sum
- MFC基础知识(一)——文档视图类指针获取、逻辑与设备坐标以及OnDraw