Description

给出n和n个整数,希望你从小到大给他们排序

Input

第一行一个正整数n

第二行n个用空格隔开的整数

Output

输出仅一行,从小到大输出n个用空格隔开的整数

Sample Input

3

3 1 2

Sample Output

1 2 3

Hint

1<=n<=100000

Solution

大材小用,Heap模板

 1 var
2 f:array [1..1000000] of longint;
3 a,i,n,len:longint;
4
5 procedure swap(var a,b:longint);
6 var x:longint;
7 begin
8 x:=a;a:=b;b:=x;
9 end;
10
11 procedure insert(a:longint);
12 var
13 x:longint;
14 begin
15 inc(len); f[len]:=a; x:=len;
16 while (x>>1>0) and (f[x>>1]>f[x]) do
17 begin
18 swap(f[x],f[x>>1]); x:=x>>1;
19 end;
20 end;
21
22 function get:longint;
23 var
24 x:longint;
25 begin
26 get:=f[1]; f[1]:=f[len]; dec(len); x:=1;
27 while (x<<1<=len) and ((f[x<<1]<f[x]) or (f[x]>f[x<<1+1])) do
28 begin
29 if (f[x<<1]<f[x<<1+1]) or (x<<1=len)
30 then begin swap(f[x],f[x<<1]);x:=x<<1; end
31 else begin swap(f[x],f[x<<1+1]);x:=x<<1+1; end;
32 end;
33 end;
34
35 begin
36 readln(n);
37 len:=0;
38 for i:=1 to n do
39 begin
40 read(a);
41 insert(a);
42 end;
43
44 for i:=1 to n do
45 write(get,' ');
46 writeln;
47 end.

学长写的模板

 var
a,h:array[..]of longint;
i,n,x,t,tmp:longint; procedure put(x:longint);
var
now:longint;
begin
inc(t); h[t]:=x; now:=t;
while (now<>)and(h[now]<h[now >> ]) do
begin
tmp:=h[now]; h[now]:=h[now >> ];
h[now >> ]:=tmp; now:=now >> ;
end;
end; function get:longint;
var
fa,son,now:longint;
begin
get:=h[]; h[]:=h[t]; dec(t);
fa:=;
while fa << <=t do
begin
if (fa << =t)or(h[fa << ]<h[fa << +])
then son:=fa << else son:=fa << +;
if h[son]>h[fa] then break;
tmp:=h[fa]; h[fa]:=h[son];
h[son]:=tmp; fa:=son;
end;
end; begin
readln(n);
for i:= to n do
begin read(x); put(x); end;
for i:= to n do write(get,' ');
writeln;
end.

【CodeVS1076】排序的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. iOS可视化动态绘制八种排序过程

    前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...

  3. JavaScript实现常用的排序算法

    ▓▓▓▓▓▓ 大致介绍 由于最近要考试复习,所以学习js的时间少了 -_-||,考试完还会继续的努力学习,这次用原生的JavaScript实现以前学习的常用的排序算法,有冒泡排序.快速排序.直接插入排 ...

  4. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  5. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

  6. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  7. 使用po模式读取豆瓣读书最受关注的书籍,取出标题、评分、评论、题材 按评分从小到大排序并输出到txt文件中

    #coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...

  8. javascript排序

    利用array中的sort()排序 w3cfunction sortNumber(a,b) { return a - b } var arr = new Array(6) arr[0] = " ...

  9. iOS自定义model排序

    在开发过程中,可能需要按照model的某种属性排序. 1.自定义model @interface Person : NSObject @property (nonatomic,copy) NSStri ...

随机推荐

  1. Ninject之旅之十一:Ninject动态工厂(附程序下载)

    摘要 如果我们已经知道了一个类所有的依赖项,在我们只需要依赖项的一个实例的场景中,在类的构造函数中引入一系列的依赖项是容易的.但是有些情况,我们需要在一个类里创建依赖项的多个实例,这时候Ninject ...

  2. logback笔记

    logback的使用 logback是什么? Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和l ...

  3. 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“IIS APPPOOL\UGAS”没有访问 temp 目录的足够权限

    在部署IIS时候会出现下图错误,拒绝访问 temp 目录.用来运行 XmlSerializer 的标识“IIS APPPOOL\UGAS”没有访问 temp 目录的足够权限 解决方法: 在IIS信息管 ...

  4. 使用二分法查找mobile文件中区号归属地

    #!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ...

  5. Haproxy ssl 配置方式

    通过haproxy redirect请求重定向的方法实现HTTP跳转HTTPS 配置实现http跳转到https,采用redirect重定向的做法,只需在frontend端添加: frontend h ...

  6. {Reshipt}{文白}{资治通鉴}

    this article came from 360doc ====================================================================== ...

  7. 转向Web

    一直搞桌面软件开发,用C++绘界面那蛋疼的日子是记忆犹新,也不想钻研什么网络协议了,好好搞Web方面吧,它的开放很让人激动 Python是个好东西,适合许多场合,包括云计算,科学计算,软件测试,运维等 ...

  8. ORACLE连接SQLSERVER

    一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...

  9. PRML

    PRML 学习之 第一章 介绍 Introduction #欢迎共同学习和讨论,由于本文将不断修改,谢绝转载 模式识别问题具有重要且久远的历史.比如,16世纪开普勒发现行星运动定律,又如20世纪出发现 ...

  10. Python常用模块学习

    1.模块介绍 2.time & datetime模块 3.random 4.os 5.sys 6.shutil 7.json&pickle 8.shelve 9.xml处理 10.ya ...