Энциклопедия Turbo Pascal. Главы 5-8
Страница 6. Медианы


Медианы

     Медианой выборки является среднее значение из всего упорядо-
ченного набора значений. Например, для выборки

    1 2 3 4 5 6 7 8 9

медианой будет 5, поскольку это число находится в середине. В на-
боре значений

    1 2 3 4 5 6 7 8 9 10

в качестве медианы может использоваться 5 или 6.  В хорошо упоря-
доченной выборке, какой является выборка с нормальным распределе-
нием,  среднее значение и медиана имеют очень  близкие  значения.
Однако по мере увеличения отклонения закона распределения выборки
от нормального увеличивается разница  между  медианой  и  средним
значением. Медиана вычисляется путем сортировки выборки в порядке
возрастания значений и выбора среднего значения с индексом  N/ 2.
     Результатом приводимой ниже функции "Median" является значе-
ние среднего элемента выборки.  Для сортировки массива данных ис-
пользуется  модифицированная версия процедуры быстрой сортировки,
разработанной в главе 1:

{ версия процедуры быстрой сортировки для  упорядочения  целых
                     чисел }

    procedure QuickSort(var item: DataArray; count: integer);
      procedure qs(l, r: integer; var it: DataArray);
       var
       i, j: integer;
       x, y: DataItem;
       begin
         i: = l; j: = r;
         x: = it[(l+r) div 2];

       repeat
         while it[i] < x do i:= i+1;
           while x < it[j] do j:= j-1;
             if i<=j then
             begin
              y:= it[i];
              it[i]:= it[j];
              it[j]:= y;
              i: = i+1; j:= j-1;
             end;
        until i>j;
        if l<j then qs(l, j, it);
        if l<r then qs(i, r, it)
       end;

    begin
      qs(1, count, item);
    end; {QuickSorte}

    { поиск медианы }
    function median(data: DataArray; num: integer): real;
    var
      dtemp: DataArray;
      t: integer;

    begin
     for t:=1 to num do dtemp[t]:=data[t];
     QuickSort(dtemp, num);
     median: = dtemp[num div 2];
    end;

 
« Предыдущая статья   Следующая статья »