堆排序
来源:互联网 发布:linux切换工作目录 编辑:程序博客网 时间:2024/05/17 09:21
实验要求:用堆排序算法按关键字递减的顺序排序。
程序输入:待排序记录数(整数)和待排序记录(整数序列);
程序输出:建堆结果和建堆后第一、第二次筛选结果。(注:待排序记录数大于等于3)
测试输入
6111216141510
测试输出
16 15 11 14 12 10 15 14 11 10 12 14 12 11 10
源代码
#include<stdio.h> #include<stdlib.h> int r[100]; int length; void HeapAdjust( int s,int m)//建堆 { int rc=r[s]; for(int j=2*s;j<=m;j*=2){ if(j<m&&r[j]<r[j+1]) ++j; if(!(rc<r[j])) break; r[s]=r[j]; s=j; } r[s]=rc; } void HeapSort( )//筛选堆 { int i; for(i=length/2;i>0;--i){ HeapAdjust(i,length); } for(i=1;i<=length;i++) printf("%d ",r[i]); printf("\n"); r[1]=r[length]; length--; } int main() { scanf("%d",&length); for(int i=1;i<=length;i++) scanf("%d",&r[i]); HeapSort(); HeapSort(); HeapSort(); }
0 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- 回文数的判断
- 今天看知乎关于java反射的理解
- 树形DP
- 补一
- pthon爬虫(6)mongo数据库
- 堆排序
- jsp中,第一个方法中调用第二个含有ajax的方法时,第一次会不执行第二个方法。
- 入门微信公众平台开发
- Grails 对象关联映射 (GORM) 一
- HDU6023-Automatic Judge-简单模拟
- 通过ServiceManagement注册LaunchdDaemon
- Grails 对象关联映射 (GORM) 二
- Easy-27
- 设计模式之模板模式