PTA——6-11 求自定类型元素序列的中位数 (25分)

Posted cxc1357

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PTA——6-11 求自定类型元素序列的中位数 (25分)相关的知识,希望对你有一定的参考价值。

采用希尔排序

 1 #include <stdio.h>
 2 
 3 #define MAXN 10
 4 typedef float ElementType;
 5 
 6 ElementType Median( ElementType A[], int N );
 7 
 8 int main ()
 9 {
10     ElementType A[MAXN];
11     int N, i;
12 
13     scanf("%d", &N);
14     for ( i=0; i<N; i++ )
15         scanf("%f", &A[i]);
16     printf("%.2f
", Median(A, N));
17 
18     return 0;
19 }
20 
21 ElementType Median( ElementType A[], int N ){
22     int h = 1;
23     while( h < N/2 )
24         h = 2 * h + 1;
25     while( h >= 1 ){
26         for( int i = h ; i < N ; i ++ ){
27             ElementType e = A[i];
28             int j;
29             for( j = i ; j >= h && e < A[j-h] ; j -= h )
30                 A[j] = A[j-h];
31             A[j] = e;
32         }
33         h /= 2;
34     }
35     return A[N/2];
36 }
  • 希尔排序比常用的O(n^2)排序要快,采用其他排序算法会超时
  • 间隔可任意设置
  • 返回A[N/2]

以上是关于PTA——6-11 求自定类型元素序列的中位数 (25分)的主要内容,如果未能解决你的问题,请参考以下文章

PTA题目集导航

6-11 求自定类型元素序列的中位数(25 分)

6-11 求自定类型元素序列的中位数 (25分)

4-11 求自定类型元素序列的中位数 (25分)

PTAC语言求自定类型元素序列的中位数

[PTA]6-4 求自定类型元素的平均