时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2188

解决:1294

题目描述:

中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数).

给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)

输入:

该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1<=N<=10000.

接着N行为N个数据的输入,N=0时结束输入

输出:

输出中位数,每一组测试数据输出一行

样例输入:
4
10
30
20
40
3
40
30
50
4
1
2
3
4
0
样例输出:
25
40
2
来源:
2011年北京大学计算机研究生机试真题

思路:

用快速排序,然后找出中位数。

我这个代码是最早写的,用的冒泡,效率较低。

代码:

#include <stdio.h>

#define M 10000

int main(void)
{
int a[M];
int n, i, j, tmp; while (scanf("%d", &n) != EOF)
{
if (n == 0)
break;
for (i=0; i<n; i++)
scanf("%d", &a[i]); for (i=0; i<n-1; i++)
{
for (j=0; j<n-1-i; j++)
{
if (a[j] > a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
} //for (i=0; i<n; i++)
// printf("%d\t", a[i]); printf("%d\n", (n%2)==0 ? (a[n/2]+a[n/2-1])/2 : a[n/2]);
} return 0;
}
/**************************************************************
Problem: 1157
User: liangrx06
Language: C
Result: Accepted
Time:550 ms
Memory:912 kb
****************************************************************/

九度OJ 1157:中位数 (中位数、排序)的更多相关文章

  1. 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找

    题目地址:http://ac.jobdu.com/problem.php?pid=1349 题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数 ...

  2. 九度OJ 1196:成绩排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4339 解决:1476 题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N< ...

  3. 九度OJ 1185:特殊排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15588 解决:3592 题目描述: 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序. 输入: 输入第一行包括1个整数N,1< ...

  4. 九度OJ 1066:字符串排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5632 解决:2299 题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的 ...

  5. 九度OJ 1061:成绩排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17158 解决:4798 题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相 ...

  6. 九度OJ 1023:EXCEL排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:14605 解决:3307 题目描述:     Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能.     对每个测试用例 ...

  7. 九度OJ 1135:字符串排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1559 解决:807 题目描述: 先输入你要输入的字符串的个数.然后换行输入该组字符串.每个字符串以回车结束,每个字符串少于一百个字符. 如 ...

  8. 九度OJ 1130:日志排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1265 解决:303 题目描述: 有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录: "hs ...

  9. 九度oj 题目1202:排序

    题目1202:排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:28802 解决:9408 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n ...

随机推荐

  1. Needle in a haystack: efficient storage of billions of photos 【转】

    转自09年的blog,因为facebook在国内无法访问,故此摘录. The Photos application is one of Facebook’s most popular features ...

  2. Graphs (Cakewalk) 1 B - medium

    Discription Bear Limak examines a social network. Its main functionality is that two members can bec ...

  3. 2016北京集训测试赛(八)Problem C: 直径

    Solution 一个定理: 把两棵树用一条边练成一棵树后, 树的直径在原来两棵树的四个直径端点中产生. 放到这一题, 我们通过DP先求出大树中以每个点为根的子树中的直径, 再取每棵小树中与其他树有连 ...

  4. 2016北京集训测试赛(七)Problem A: 自动机

    Solution 注意到这一题并不要求字符串最短或者是字典序最小, 因此直接构造就可以了. 我们对于每个点\(u \ne 0\)找到一个串\(S\), 使得\(T(u, S) = T(0, S)\), ...

  5. Android-Handler消息机制实现原理

    一.消息机制流程简介 在应用启动的时候,会执行程序的入口函数main(),main()里面会创建一个Looper对象,然后通过这个Looper对象开启一个死循环,这个循环的工作是,不断的从消息队列Me ...

  6. CMake的应用(在vision studio2008中去掉 ALL_BUILD 和 ZERO_CHECK)

    from  http://blog.csdn.net/jtop0/article/details/6167432 一般由CMake是 跨平台软件开发和维护过程的 工程构建工具.“在每个系统构建你的工程 ...

  7. php报错配置问题

    在开发的时候php.ini ,要显示所有的错误 error_reporting=E_ALL | E_STRICT 在发布的时候可以显示除了notice之外的错误,打开错误记录功能 error_repo ...

  8. 排序算法之高速排序(Java)

    //高速排序 public class Quick_Sort { // 排序的主要算法 private int Partition(int[] data, int start, int end) { ...

  9. DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002 解决方法

    在操作大量数据时如果发生这种错误,说明不是db2 使用的 package没有绑定,而是 因为资源未释放,导致可以使用此package的资源不足,致使不能连接资源. 在程序中,对PreparedStat ...

  10. Linux下防火墙iptables用法规则详及其防火墙配置

    转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...