swustoj堆排序算法(1015)
1
2
3
|
10
50 36 41 19 23 4 20 18 12 22
|
1
|
4 12 20 18 22 41 50 36 19 23
|
A#B#C#D#
其中A,B,C,D代码有效数据,#代码空格.
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<iostream>
using namespace std;int _min;
void Pushdown(int *a,int low,int high)
{int i=low,j=2*i;int temp=a[i];while(j<=high){if(j<high&&a[j]>a[j+1]){j++;}if(temp>a[j]){a[i]=a[j];i=j;j=2*i;}else break;}a[i]=temp;
}void HeadSort(int *a,int n)
{for(int i=n/2;i>=1;i--){Pushdown(a,i,n);}
// for(int i=n;i>=2;i--){
// swap(a[1],a[i]);
// Pushdown(a,1,i-1);
// break;
// }}int main()
{int a[1000];int n;cin>>n;_min=9999999;for(int i=1;i<=n;i++){cin>>a[i];if(_min>a[i])_min=a[i];}HeadSort(a,n);for(int i=1;i<=n;i++){cout<<a[i]<<' ';}return 0;
}
swustoj堆排序算法(1015)相关推荐
- SWUST OJ 1015: 堆排序算法
1015: 堆排序算法 题目描述 编写程序堆排序算法.按照从小到大的顺序进行排序,测试数据为整数. 输入 第一行是待排序数据元素的个数: 第二行是待排序的数据元素.(提示:用小根堆) 输出 一趟堆排序 ...
- swust.oj1015: 堆排序算法
1015: 堆排序算法 题目描述 编写程序堆排序算法.按照从小到大的顺序进行排序,测试数据为整数. 输入 第一行是待排序数据元素的个数: 第二行是待排序的数据元素.(提示:用小根堆) 输出 一趟堆排序 ...
- 上标3下标6算法_图解堆排序算法
堆排序定义 一般来说,算法就像数学公式,前人经过不断优化和验证得到有规律性的公式留给后人使用,当然也会交给后人验证的思路.那么堆排序算法就是这样,它有基本固定的定义如下: 1.将数组构建为一颗有规则的 ...
- 9个元素换6次达到排序序列_一文带你读懂排序算法(三):堆排序算法
国庆节快乐~点击上方文字关注我们哦 堆是一种特殊的树形数据结构,其每一个结点都有一个值,通常提到的堆都是指一棵完全二叉树,根结点的值小于(或大于)两个子结点的值,同时,根结点的两个子树也分别是一个堆. ...
- 精通八大排序算法系列:二、堆排序算法
精通八大排序算法系列:二.堆排序算法 作者:July .二零一一年二月二十日 本文参考:Introduction To Algorithms,second edition. ------------- ...
- 堆排序时间复杂度_堆排序算法
堆排序是指利用堆积树这种数据结构所设计的一种排序算法,它是选择排序的一种.可以利用数组的特点快速定位指定索引的元素.堆是一个优先级队列,对于大顶堆而言,堆顶元素的权值最大.将待排序的数组建堆,然后不断 ...
- 【java排序】 归并排序算法、堆排序算法
一.归并排序算法 基本思想: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并 ...
- JavaScript实现heapsort堆排序算法(附完整源码)
JavaScript实现heapsort堆排序算法(附完整源码) Heap.js完整源代码 MinHeap.js完整源代码 Comparator.js完整源代码 Sort.js完整源代码 HeapSo ...
- 经典排序算法(7)——堆排序算法详解
堆排序(Heap sort)是指利用堆(最大堆.最小堆)这种数据结构所设计的一种排序算法.堆是一个完全二叉树的结构,并同时满足如下性质:即子结点的键值或索引总是小于(或者大于)它的父节点. 一.算法基 ...
- java 实现 堆排序算法_C程序实现堆排序算法
java 实现 堆排序算法 Heap Sort is a comparison-based sorting algorithm that makes use of a different data s ...
最新文章
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
- 初等数论--同余--MILLER-RABIN素性检测算法
- C# 利用反射动态调用类成员
- nancy框架安装并使用
- 在驱动和应用程序间共享内存
- matlab水力学工具箱,新浪潮水工设计软件
- qprocess 最小化启动外部程序_安川机器人预约启动功能
- Java的反射机制(Reflection)
- python27的Windows下环境搭建
- Linux进程之如何查看进程详情?
- 【Call Me Maybe】MMD镜头+动作打包下载.zip
- MATLAB图像分割的GUI设计
- 为什么那么容易转行软件测试,软件测试好学吗 大概要学多久
- rst 文件打开方式
- 系统运维工程师学习计划
- echarts 的初始化
- Spring实战笔记——(1)Spring之旅(上)
- 购买安防监控摄像头时如何省钱
- VMware虚拟机Host-Only(仅主机模式)
- 《性能优化》并发与并行