排序

Time Limit: 1000ms   Memory limit: 32678K  有疑问?点这里^_^

题目描述

给你N(N<=100)个数,请你按照从小到大的顺序输出。

输入

输入数据第一行是一个正整数N,第二行有N个整数。

输出

输出一行,从小到大输出这N个数,中间用空格隔开。

示例输入

5
1 4 3 2 5

示例输出

1 2 3 4 5

提示

本来这道题目用普通的选择排序或者是冒泡排序都可以ac,但是为了练一练堆排序,用堆排序的方法做了一下,权且当做抛砖引玉~

代码:

 //堆排序
#include<iostream>
#include<string>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
void heapsort(int f[],int );
void heapadjust(int f[],int s,int m);
int main()
{
int n;
cin>>n;
int i;
int f[];
for(i=;i<=n;i++)
cin>>f[i];
heapsort(f,n);
for(i=;i<=n;i++)
{
if(i==)
cout<<f[i];
else
cout<<" "<<f[i];
}
cout<<endl;
return ;
}
void heapsort(int f[],int n)
{
int i;
for(i=n/;i>;i--)
{
heapadjust(f,i,n);
}
for(i=n;i>;i--)
{
int temp;
temp=f[];
f[]=f[i];
f[i]=temp;
heapadjust(f,,i-);
}
}
void heapadjust(int f[],int s,int m)
{
int rc=f[s];
for(int j=*s;j<=m;j=j*)
{
if(j<m&&f[j]<f[j+])++j;
if(rc>=f[j])break;
f[s]=f[j];
s=j;
}
f[s]=rc;
}

排序练习【sdut 1582】【堆排序】的更多相关文章

  1. 算法 排序NB二人组 堆排序 归并排序

    参考博客:基于python的七种经典排序算法     常用排序算法总结(一) 序前传 - 树与二叉树 树是一种很常见的非线性的数据结构,称为树形结构,简称树.所谓数据结构就是一组数据的集合连同它们的储 ...

  2. 插入排序、冒泡排序、选择排序、希尔排序、高速排序、归并排序、堆排序和LST基数排序——C++实现

    首先是算法实现文件Sort.h.代码例如以下: <pre name="code" class="java">/* * 实现了八个经常使用的排序算法: ...

  3. 数据结构和算法(Golang实现)(24)排序算法-优先队列及堆排序

    优先队列及堆排序 堆排序(Heap Sort)由威尔士-加拿大计算机科学家J. W. J. Williams在1964年发明,它利用了二叉堆(A binary heap)的性质实现了排序,并证明了二叉 ...

  4. 第四篇、C_快速、冒泡、选择、插入排序、二分查找排序、归并、堆排序

    1.快速排序 实现: 1.取中间一个数作为支点 2.分别在支点的左右两边进行查找,如果左边查找到比支点大,右边查找到比支点小,就交换位置,如此循环,比支点小的数就排在了左边,比支点大的就排在右边 3. ...

  5. 排序算法入门之堆排序(Java实现)

    堆排序 在学习了二叉堆(优先队列)以后,我们来看看堆排序.堆排序总的运行时间为O(NlonN). 堆的概念 堆是以数组作为存储结构. 可以看出,它们满足以下规律: 设当前元素在数组中以R[i]表示,那 ...

  6. 高速排序,归并排序,堆排序python实现

    高速排序的时间复杂度最好情况下为O(n*logn),最坏情况下为O(n^2),平均情况下为O(n*logn),是不稳定的排序 归并排序的时间复杂度最好情况下为O(n*logn),最坏情况下为O(n*l ...

  7. java算法----排序----(7)堆排序

    package log; import java.util.Arrays; public class Test4 { /** * 堆排序 * * @param args */ public stati ...

  8. 【Java】 大话数据结构(16) 排序算法(3) (堆排序)

    本文根据<大话数据结构>一书,实现了Java版的堆排序. 更多:数据结构与算法合集 基本概念 堆排序种的堆指的是数据结构中的堆,而不是内存模型中的堆. 堆:可以看成一棵完全二叉树,每个结点 ...

  9. 几种排序方式的java实现(02:希尔排序,归并排序,堆排序)

    代码(部分为别人代码): 1.希尔排序(ShellSort) /* * 希尔排序:先取一个小于n的整数d1作为第一个增量, * 把文件的全部记录分成(n除以d1)个组.所有距离为d1的倍数的记录放在同 ...

随机推荐

  1. DICOM医学图像窗口变换的加速算法

    详见:http://pan.baidu.com/s/1gfFLbJ9 DICOM医学图像窗口变换的加速算法* 张尤赛 ,陈福民 ( 同济大学计算中心, 上海 200092 ) (华东船舶工业学院电子与 ...

  2. Colorful tree

    cnbb 我被数组清零卡了一天.. 子树改色询问子树颜色数.. 先考虑颜色为x的节点对祖先答案的贡献,那么我们考虑把所有这些节点都搞出来,按dfs序排序,然后考虑每个节点a掌管的祖先是它和按dfs序的 ...

  3. phpcms模块开发简易教程

    简介: 在phpcms中,各个功能是以模块为单位定义的(对应modules目录),如果需要新增功能最好的办法就是开发一个模块,然后复制到phpcms目录下,然后进入后台安装即可. 官方说明: phpc ...

  4. 使用 MongoDB 的_id 查询

    MongoDB 默认在插入数据时,生成一个主键_id,那么怎么使用_id来查询数据? 查询全部 > db.foo.find(){ "_id" : ObjectId(" ...

  5. Oracle: SQL组合不同字段作为一个查询条件

    前端程序传过来的值是有三个字段组合之后的结果,后端程序处理,并且将查询的数据反馈给前端. PS:不能直接使用字段RPT_NO的,因为在这条记录中RPT_NO恰好等于其他三个字段的组合值. 正确的做法是 ...

  6. JQuery 遍历 - prev() 方法

    http://www.w3school.com.cn/jquery/traversing_prev.asp http://www.w3school.com.cn/jquery/jquery_ref_t ...

  7. Hexo

    Hexo Hexo is a fast, simple & powerful blog framework powered by Node.js.

  8. POJ 3026(BFS+prim)

    http://poj.org/problem?id=3026 题意:任意两个字母可以连线,求把所有字母串联起来和最小. 很明显这就是一个最小生成树,不过这个题有毒.他的输入有问题.在输入m和N后面,可 ...

  9. Unity3d 保存和使用地形高度

    TerrainHeightProcesser 地形高度存储工具 TerrainHeightData 地形高度数据 // class TerrainHeightProcesser using Unity ...

  10. redis 中文字符显示

    2015年5月20日 09:57:01 星期三 方法一: redis-cli -h --raw 方法二: linux 终端: echo -e "\xe7\xa5\x9e\xe6\xa3\x8 ...