排序算法:推排序
来源:互联网 发布:社交媒体网络安全问题 编辑:程序博客网 时间:2024/05/31 19:37
#include<iostream>using namespace std;void AdjustHeap(int A[], int hLen, int i){int left = 2*i + 1; int right = 2*i + 2;int largest = i;int temp;while(left < hLen || right < hLen){if (left < hLen && A[largest] < A[left]){largest = left;}if (right < hLen && A[largest] < A[right]){largest = right;}if (i != largest) {temp = A[largest]; A[largest] = A[i];A[i] = temp;i = largest; left = 2*i + 1; right = 2*i + 2;}else{break;}}}void BuildHeap(int A[], int hLen){int i;int begin = hLen/2 - 1; for (i = begin; i >= 0; i--){AdjustHeap(A, hLen, i); }}void HeapSort(int A[], int aLen){int hLen = aLen;int temp;BuildHeap(A, hLen); while (hLen >= 1){temp = A[hLen-1]; A[hLen-1] = A[0];cout << A[0] << ' ';A[0] = temp;hLen--; AdjustHeap(A, hLen, 0); }}int main(){int A[10]={1, 3, 4, 5, 7, 2, 6, 8, 0};HeapSort(A, 9);return 0;}
0 0
- 排序算法:推排序
- 推排序算法C/C++
- 推排序
- 推排序
- 建小顶堆以及推排序
- 推排序举例
- 算法中推排序的思想以及程序表示
- 直接插入排序、归并排序、推排序、快速排序
- 堆排序及推排序实现[原创]
- 排序算法--冒泡排序
- 排序算法--希尔排序
- 排序算法--堆排序
- 排序算法--快速排序
- 排序-基本排序算法
- 排序算法--快速排序
- 排序算法-冒泡排序
- 排序算法-选择排序
- 排序算法-插入排序
- Pyqt5系列(四)-基本界面组件之Dialog(2)
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- Eclipse中tomcat插件配置
- 浅谈UML学习笔记之类图
- sizeof()的使用及各种数据类型的字节大小
- 排序算法:推排序
- 在php中常常遇见的错误
- C#中正则表达式的使用
- PPPcloud云主机免费送!
- Android HashMap循环遍历方式及其性能对比 (十一)
- CocoaPods使用
- CentOS(Linux)中无法输入 竖线“|”的问题
- IOS KVC和KVO的使用
- 1001 A+B Format (20)