鱼C论坛

 找回密码
 立即注册
查看: 2248|回复: 3

[已解决]帮帮我吧

[复制链接]
发表于 2021-1-6 17:13:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求自定类型元素序列的中位数 (25分)
本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊(N+1)/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


ElementType Median( ElementType A[], int N )
{
        int min,i,j;
        float t,k;
        for(i=0;i<N-1;i++)
        {
                min = i;
                for(j=i+1;j<N;j++)if(A[min]>A[j])min = j;
                t = A[i];
                A[i] = A[min];
                A[min] = t;
        }
        return A[N/2];
}//为什么我的总有大N,卡时       
运行超时这一分得不到
最佳答案
2021-1-6 17:39:18
本帖最后由 jackz007 于 2021-1-6 17:43 编辑
  1. ElementType Median( ElementType A[] , int N)
  2. {
  3.         ElementType r = 0.0 , t                          ;
  4.         int i , j                                        ;
  5.         for(i = 0 ; i < N - 1 ; i ++) {
  6.                 for(j = i + 1 ; j < N ; j ++) {
  7.                         if(A[i] > A[j]) {
  8.                                 t = A[i]                 ;
  9.                                 A[i] = A[j]              ;
  10.                                 A[j] = t                 ;
  11.                         }
  12.                 }
  13.         }
  14.         if(N) {
  15.                 if(N % 2) r = A[N / 2]                   ;
  16.                 else r = (A[N / 2 - 1] + A[N / 2]) / 2.0 ;
  17.         }
  18.         return r                                         ;
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-6 17:21:59 | 显示全部楼层
来看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-6 17:39:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-1-6 17:43 编辑
  1. ElementType Median( ElementType A[] , int N)
  2. {
  3.         ElementType r = 0.0 , t                          ;
  4.         int i , j                                        ;
  5.         for(i = 0 ; i < N - 1 ; i ++) {
  6.                 for(j = i + 1 ; j < N ; j ++) {
  7.                         if(A[i] > A[j]) {
  8.                                 t = A[i]                 ;
  9.                                 A[i] = A[j]              ;
  10.                                 A[j] = t                 ;
  11.                         }
  12.                 }
  13.         }
  14.         if(N) {
  15.                 if(N % 2) r = A[N / 2]                   ;
  16.                 else r = (A[N / 2 - 1] + A[N / 2]) / 2.0 ;
  17.         }
  18.         return r                                         ;
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-6 19:00:39 | 显示全部楼层
来看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 18:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表