zoukankan      html  css  js  c++  java
  • [刷题] 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]
  • 相关阅读:
    codepen
    css3 animate
    dowebok 网站
    java第四次实验
    java第九周学习总结
    java第三次实验
    java第八周学习总结
    java第二次试验
    java第七周学习总结
    java第六周学习总结
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12233767.html
Copyright © 2011-2022 走看看