PAT-C-4-11 求自定类型元素序列的中位数 (25分)
2016-05-10 16:44
344 查看
4-11 求自定类型元素序列的中位数 (25分)
本题要求实现一个函数,求
N/2 \rceil⌈N/2⌉大的元素。其中集合元素的类型为自定义的
其中给定集合元素存放在数组
本题要求实现一个函数,求
N个集合元素
A[]的中位数,即序列中第\lceil
N/2 \rceil⌈N/2⌉大的元素。其中集合元素的类型为自定义的
ElementType。
函数接口定义:
ElementType Median( ElementType A[], int N );
其中给定集合元素存放在数组
A[]中,正整数
N是数组元素个数。该函数须返回
N个
A[]元素的中位数,其值也必须是
ElementType类型。
裁判测试程序样例:
#include <stdio.h>
#define MAXN 10
typedef float ElementType;
ElementType Median( ElementType A[], int N );
int main ()
{
ElementType A[MAXN];
int N, i;
scanf("%d", &N);
for ( i=0; i<N; i++ )
scanf("%f", &A[i]);
printf("%.2f\n", Median(A, N));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
3 12.3 34 -5
输出样例:
12.30
void QSort(ElementType A[], int Left, int Right){ if(Left>=Right) return; ElementType Pivot = Median3(A, Left, Right); int i = Left, j = Right - 1; while(1){ while( A[++i] < Pivot ) { } while( A[--j] > Pivot) { } if( i<j ) Swap(&A[i], &A[j]); else break; } Swap(&A[i], &A[Right-1]); QSort(A, Left, i-1); QSort(A, i+1, Right); } ElementType Median( ElementType A[], int N ){ QSort(A, 0, N-1); return A[N/2]; }
相关文章推荐
- php中使用pdo,mysql,等各种乱码情况解决办法
- Android实现天气查询
- Delphi berlin 如何自定义Listview外观样式
- binary complex的MATLAB读取
- C++第五次作业
- Process 'command '/usr/lib/jvm/jdk1.8.0_25/bin/java'' finished with non-zero exit value 2
- String、StringBuffer与StringBuilder之间区别
- ABAQUS二次开发悬臂梁以及ODB文件信息的读取
- 临时数据转化为mysql表与现有表进行join
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope
- 155. Min Stack
- WebAPP与原生APP的交互设计区别
- javascript关于继承解析
- JS判断字符是否为数字类型
- Jframe设置
- 安卓dex的编译和反编译
- 分布式设计与开发(三)------高一致性服务ZooKeeper
- ListView性能优化
- 面向对象的六大原则
- java多线程join