4-11 求自定类型元素序列的中位数 (25分)
来源:互联网 发布:国土防线2优化补丁 编辑:程序博客网 时间:2024/05/18 01:46
本题要求实现一个函数,求N个集合元素A[]的中位数。其中集合元素的类型为自定义的ElementType。
函数接口定义:
ElementType Median( ElementType A[], int N );
其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是ElementType类型。
裁判测试程序样例:
#include <stdio.h>#define MAXN 10typedef 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;}/* 你的代码将被嵌在这里 */
解题思路:注意到裁判测试样例中有#define MAXN 10,既意味着自定义数组类型中元素个数,最多为10个。这意味着不必要为了追求数量级更低的排序算法,用代码较简单的插入排序或者希尔排序算法即可。本答案用希尔排序实现。
ElementType Median( ElementType A[], int N){ int i, j, Increment; ElementType Tmp; //将数组排序 for ( Increment = N / 2; Increment > 0; Increment /= 2){ for ( i = Increment; i < N; i++){ Tmp = A[ i ]; for (j = i;j >= Increment;j -= Increment ){ if ( Tmp < A[ j - Increment ]) A[ j ] = A[ j - Increment ]; else break; } A[ j ] = Tmp; } } return A[ N / 2 ];}
PAT 基础编程题的函数题中,这一道题目的分值是最高的,用到了简单的排序算法,分值一下高了上来。说明基础编程题难度不大。。。努力呀努力呀!!
0 0
- PAT-C-4-11 求自定类型元素序列的中位数 (25分)
- 4-11 求自定类型元素序列的中位数 (25分)
- 4-11 求自定类型元素序列的中位数 (25分)
- PTA 4-11 求自定类型元素序列的中位数 (25分)
- 4-11 求自定类型元素序列的中位数 (25分)
- 4-11 求自定类型元素序列的中位数 (25分)
- 6-11 求自定类型元素序列的中位数(25 分)
- 6-11 求自定类型元素序列的中位数(25 分)
- 4-11 求自定类型元素序列的中位数
- 4-11 求自定类型元素序列的中位数
- 4-11 求自定类型元素序列的中位数*
- 求自定类型元素序列的中位数(25 分)
- 6-11 求自定类型元素序列的中位数
- PAT基础题 4-11 求自定类型元素序列的中位数
- 求自定类型元素序列的中位数 PAT
- 求自定类型元素序列的中位数
- 求自定类型元素序列的中位数
- PTA 6-11 求自定类型元素序列的中位数
- Python下的LibSVM的使用
- Qt自定义带游标的slider,在滑块正上方显示当前值
- MySQL长事务导致的Table Metadata Lock
- Android Action Bar 详解篇
- 程序猿的基本性格
- 4-11 求自定类型元素序列的中位数 (25分)
- GW - ToDoList
- Greenplum的工作负载及资源管理
- java se-作业2--随机数-2016.719
- wifi 驱动 进阶11
- C的头文件和java的引包
- 杭电博弈入门题
- Android ActionBar的基本用法
- 用C# 加密字符串后、再用C++解密字符串的各自代码