算法导论---堆排序
来源:互联网 发布:3d66网软件下载 编辑:程序博客网 时间:2024/05/17 03:05
#include<iostream>using namespace std;void heapsort(int *a, size_t size);void buildheap(int *a, size_t size);void maxheapify(int *a, size_t n,size_t i);int main(){int a[11] = { -1,4,1,3,2,16,9,10,14,8,7 };heapsort(a, 10);for (size_t i = 1; i < 11; ++i)cout << a[i] << " ";cout << endl;return 0;}void heapsort(int *a, size_t size){buildheap(a, size);for (size_t i = size ; i >1; --i){std::swap(a[1], a[i]);--size;maxheapify(a, size,1);}}void buildheap(int *a, size_t size){size_t n = size;for (size_t i = n / 2 ; i >0; --i)maxheapify(a, n,i);}void maxheapify(int *a, size_t n,size_t i){size_t le = 2 * i , ri = 2 * i + 1;size_t large = i;if (le<=n&&a[large] < a[le])large = le;if (ri<=n&&a[large] < a[ri])large = ri;if (large != i){std::swap(a[large], a[i]);maxheapify(a, n, large);}}
0 0
- 算法导论 堆排序
- 算法导论--堆排序
- 【算法导论】 堆排序
- 算法导论-----堆排序
- 【算法导论】堆排序
- 算法导论-堆排序
- 堆排序--算法导论
- 算法导论:堆排序
- 算法导论:堆排序
- 【算法导论】堆排序
- 算法导论--堆排序
- 算法导论 堆排序
- 【算法导论】 堆排序
- 算法导论---堆排序
- 算法导论 堆排序
- 算法导论--堆排序
- 算法导论:堆排序
- [算法导论]堆排序
- (35)Java学习笔记——集合框架 / 增强for /静态导入 /可变参数
- Closure
- DockerInAction-Persistent storage and shared state with volumes
- Ubuntu系统安装配置JDK
- 汇编的意义
- 算法导论---堆排序
- C#面试题
- RxJava不要重复使用(reuse)Subscriber的实例
- 序列化
- 第三方yum源安装后,之后用于安装的是哪个yum源
- Java学习历程(5):对象实例化的认识 对象和对象引用
- extern关键字讲解
- css rem 的理解
- JavaScript及下半年的工作