POJ 2388(排序)
http://poj.org/problem?id=2388
题意:就N个数的中位数。
思路:用快排就行了。但我没用快排,我自己写了一个堆来做这个题。主要还是因为堆不怎么会,这个拿来练练手。
#include <stdio.h>
#include <string.h> int arr[],ans,n; void inset(int x,int y) //插入,并排序。
{
int i;
for(i = y; arr[ i / ] > x;i /= )
arr[ i ] = arr[ i / ];
arr[ i ] = x;
} int deleteMin(int x ) //弹出顶点,相当于优先队列中的,先top(),然后pop();
{
int i, child;
int Min,last;
Min = arr[],last = arr[ x ];
for(i = ; i * <= x; i = child )
{
child = i * ;
if( child != x && arr[ child+ ]
< arr[ child ] )
child++;
if(last > arr[ child ])
arr[ i ] = arr[ child ];
else
break;
} arr[ i ] = last;
return Min;
}
int main()
{
// freopen("in.txt","r",stdin);
int x,i;
scanf("%d",&n);
arr[] = -;
for(i=;i<=n;i++)
{
scanf("%d",&x);
inset(x,i);
}
for(i=;i<=n/+;i++)
{
ans = deleteMin(n-i+);
}
printf("%d\n",ans);
}
POJ 2388(排序)的更多相关文章
- poj 2388 insert sorting
/** \brief poj 2388 insert sorting 2015 6 12 * * \param * \param * \return * */ #include <iostrea ...
- POJ 2388 Who's in the Middle(水~奇数个数排序求中位数)
题目链接:http://poj.org/problem?id=2388 题目大意: 奇数个数排序求中位数 解题思路:看代码吧! AC Code: #include<stdio.h> #in ...
- POJ题目排序的Java程序
POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...
- POJ 2388&&2299
排序(水题)专题,毕竟如果只排序不进行任何操作都是极其简单的. 事实上,排序算法十分常用,在各类高级的算法中往往扮演着一个辅助的部分. 它看上去很普通,但实际的作用却很大.许多算法在失去排序后将会无法 ...
- POJ 1833 排序
http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序. 思路: 排序原理: 1.如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序. 2. ...
- POJ 2388 Who's in the Middle (快速选择算法:O(N)求数列第K大)
[题意]求数列中间项. ---这里可以扩展到数列第K项. 第一次做的时候直接排序水过了= =--这一次回头来学O(N)的快速选择算法. 快速选择算法基于快速排序的过程,每个阶段我们选择一个数为基准,并 ...
- POJ 2388
还是水题,简单的排序.大半夜的,没脑子想太复杂的代码了,就随手找了段以前写的插入排序将就着用了. 题目的意思就是取一个数列的中位数,很简单,排序后取a[n/2]即可. 代码如下: #ifndef _2 ...
- POJ 2388:Who's in the Middle
Who's in the Middle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31015 Accepted: 1 ...
- poj 2388 Who's in the Middle(快速排序求中位数)
一.Description FJ is surveying his herd to find the most average cow. He wants to know how much milk ...
随机推荐
- Python之路【目录】 2
http://www.cnblogs.com/wupeiqi/articles/4938499.html
- 如何在JDK1.8中愉快地处理日期和时间
如何在JDK1.8中愉快地处理日期和时间 JDK1.8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date实在是太难用了. ...
- fedora23忘记root密码怎么办??
fedora23使用的是uefi, 不是 传统的grub 所以在编辑grub的时候, 跟以前的版本略有不同 最最重要的是: 在编辑启动条目的时候, 那个 linuxefi ... vmlinuz... ...
- 安装好Android Studio(如果内存足够可以改下as的内存)
找到studio的bin目录,找到如下文件
- 网站SEO优化之添加Sitemap文件。
Sitemap.xml 故名思意就是站点地图文件,可以指引Google spider 收录相应网页.正确地使用Google Sitemap,可以确保让Google spider 不遗漏网站内的任何页面 ...
- HDU 2010
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int Is_SXH(int num); int main() { int in1, ...
- C#深入浅出 关键字(一)
1.this this关键字用于指示当前对象“自己”,来看一个例子,了解什么时候需要用this class Star { String name; int age; public void SetIn ...
- Ubuntu 12 升级 SVN 1.6 到 1.8 版本
在 Ubuntu 12 中使用 PhpStorm 10.x,CheckOut项目后,Event Log 提示: Subversion command line client version is to ...
- 格式化Double类型
//格式化Double类型 //F:默认是2位小数点 //F6:输出小数点后6位,不够的话用0补齐 //G:默认输出原先的,保留小数点后面的位数 LalTotal.Text = "合计:原始 ...
- 浅析for in 和for的区别
区别一: for in是javascript 1.0 中发布的. for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分. 这将 ...