PTA基础编程题目集 6-11 求自定类型元素序列的中位数(C语言实现)

发布时间:2026/11/7 5:03:08

PTA基础编程题目集 6-11 求自定类型元素序列的中位数(C语言实现) 题目描述摘要本文介绍如何实现求自定义类型元素序列的中位数核心思路是先降序排序希尔排序再取下标 (N-1)/2 的元素时间复杂度约 O(N^1.3)空间 O(1)。文末附完整代码及测试用例。本题要求实现一个函数求 N 个集合元素 A[] 的中位数即序列中第 ⌊(N1)/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 ( i0; iN; i ) scanf(%f, A[i]); printf(%.2f\n, Median(A, N)); return 0; } /* 你的代码将被嵌在这里 */输入样例3 12.3 34 -5输出样例12.30函数部分实现/* 快速选择后返回中位数 */ElementTypeMedian(ElementType A[],intN){inti,j,gap;ElementType temp;/* 希尔排序降序时间复杂度约 O(N^1.3)可通过大 N 时限 */for(gapN/2;gap0;gap/2){/* 增量序列每次折半 */for(igap;iN;i){/* 从 gap 开始向后扫描 */tempA[i];/* 暂存当前元素 *//* 降序插入若前一个增量位置的元素更小则后移 */for(ji;jgapA[j-gap]temp;j-gap)A[j]A[j-gap];A[j]temp;/* 放入正确位置 */}}/* 降序排列后A[(N-1)/2] 恰好是第 ⌊(N1)/2⌋ 大的元素 */returnA[(N-1)/2];}下面是 Median 函数的算法流程图是是是否否否开始 Median(A, N)gap N / 2gap 0 ?i gapi N ?temp A[i]; j ij gap 且 A[j-gap] temp ?A[j] A[j-gap]; j - gapA[j] temp; igap / 2返回 A[(N-1)/2]结束代码部分实现/* 6-11 求自定类型元素序列的中位数 * 题目实现函数 Median(A[], N)返回 N 个元素的中位数。 * 实现原理先排序再取中间元素。 * 这里用希尔排序把数组降序排列 * 排序后中位数位于下标 (N-1)/2向下取整 * 对奇数/偶数长度都适用偶数时取中间偏左者。 * 时间复杂度 O(N^1.3)希尔空间复杂度 O(1)。 */#includestdio.h#defineMAXN10typedeffloatElementType;ElementTypeMedian(ElementType A[],intN);intmain(){ElementType A[MAXN];intN,i;scanf(%d,N);for(i0;iN;i)scanf(%f,A[i]);printf(%.2f\n,Median(A,N));return0;}/* 希尔排序降序后返回中位数 */ElementTypeMedian(ElementType A[],intN){inti,j,gap;ElementType temp;/* 希尔排序降序时间复杂度约 O(N^1.3)可通大 N 时限 */for(gapN/2;gap0;gap/2){/* 增量序列每次折半 */for(igap;iN;i){/* 从 gap 开始向后扫描 */tempA[i];/* 暂存当前元素 *//* 降序插入若前一个增量位置的元素更小则后移 */for(ji;jgapA[j-gap]temp;j-gap)A[j]A[j-gap];A[j]temp;/* 放入正确位置 */}}/* 降序排列后A[(N-1)/2] 恰好是第 ⌊(N1)/2⌋ 大的元素 */returnA[(N-1)/2];}
延伸阅读

更多相关文章

2026/11/1 20:30:18

ISP ToneMap:原理、必要性与应用场景

摘要 ISP ToneMap(色调映射)是图像信号处理器(ISP)中的核心算法,负责将传感器捕获的高动态范围(HDR)数据智能压缩并映射到标准动态范围(SDR)显示设备上。它解决了现实世界广阔亮度范围与显示设备有限能力之间的根本矛盾,通过全局或局部映射算法,在保留高光和阴影细…

2026/11/1 10:26:27

K8s 到底解决了什么现实问题?

K8s 通俗完整讲解(结合你做AI服务、模型部署的场景来讲,避开晦涩教科书话术) 1、名字由来 Kubernetes 单词拼写:K-ubernete-s,首尾K、s,中间8个字母,行业简称 K8s,中文常叫「库伯内特斯」。 是谷歌基于自家十几年容器调度系统 Borg 开源出来的云原生编排工具,现在云…

2026/11/7 4:58:25

成人电工证怎么查询,良心建议帮你解决跨省转证难题

成人电工证怎么查询,良心建议帮你解决跨省转证难题 之前考的证在外省能不能转过来?你不是一个人。我之前帮过一位鹤壁水利工程的同事处理过类似问题,他拿着在山东考的低压电工证,到河南这边找工作却被告知“证不认”。这事让我意识到,很多人在考了证之后…

2026/11/7 4:58:25

维修电工证个人查询通过率揭秘:外省证能转吗?南阳从业者实操指南

维修电工证个人查询通过率揭秘:外省证能转吗?南阳从业者实操指南 之前考的证在外省能不能转过来?这个事我见过太多人问,也见过不少人因为这事耽误了工作机会。今天咱们就从南阳卧龙区一位水利工程从业者的亲身经历说起,讲讲维修电工证个人查询背后的真相…

2026/11/7 4:58:25

电工证和叉车证怎么转回本地?上岗必备流程全拆解

电工证和叉车证怎么转回本地?上岗必备流程全拆解 之前考的证在外省能不能转过来?这个问题困扰了不少在外省打工的工人,特别是像你这样的济源劳务班组负责人,经常需要跨地区调配人员,证书的转移和认可就成了头等大事。别急,电工证和叉车证虽然分属不同类…

2026/11/7 4:58:25

维修电工证个人查询真实经历:外省证怎么转?考试内容全解析

维修电工证个人查询真实经历:外省证怎么转?考试内容全解析 之前考的证在外省能不能转过来?这个问题我听得太多了,尤其是从南阳过来的学员,很多人都是从别的省份考的证,想在河南继续工作或换证,但不知道流程和政策。今天就结合我这边的真实经历,给大家…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/6 10:49:01

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/7 0:03:08

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在郑州这样的城市,很多施工企业负责人和一线作业人员在报考电工证和钳工证时都面临着同样的困惑。到底该考哪个证?哪个更适合自己?哪个证书…

2026/11/7 0:03:08

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱?

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱? 之前考的证在外省能不能转过来?这个问题我遇到太多了,今天就拿广西电工证办理流程来具体说说,别再走弯路了。广西电工证的报考、复审、继续教育这些环节,如果你不了解,真的会吃大亏,尤其对于从…

2026/11/7 0:03:08

电气电工证都有哪些保姆级教程

电气电工证都有哪些保姆级教程 你是不是正愁不知道去哪报名,怕被中介坑?别急,这篇保姆级教程专为河南初次报考人员准备,帮你搞清楚 电气电工证都有哪些 ,以及如何避开那些坑。 电气电工证都有哪些?别被五花八门的证书搞懵了…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/6 10:49:01

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑