Понимание алгоритма "медиана медиан"

Я хочу понять алгоритм "медиана медиан" на следующем примере:

У нас есть 45 различных чисел, разделенных на 9 групп по 5 элементов в каждой.

48 43 38 33 28 23 18 13 8

49 44 39 34 29 24 19 14 9 

50 45 40 35 30 25 20 15 10

51 46 41 36 31 26 21 16 53

52 47 42 37 32 27 22 17 54
  1. Первый шаг - сортировка каждой группы (в данном случае они уже отсортированы)
  2. Второй шаг рекурсивно, find "истинная" медиана медиан (50 45 40 35 30 25 20 15 10) т.е. множество будет разделено на 2 группы:

    50 25 40 35 30 25 20 15 10.
    
    45 20 
    
    40 15
    
    35 10
    
    30
    

    сортировка этих 2 групп

    30 10
    
    35 15 
    
    40 20
    
    45 25
    
    50
    

медианы равны 40 и 15 (в случае четных чисел мы взяли левую медиану) поэтому возвращаемое значение равно 15, однако "истинная" медиана медиан (50 45 40 35 30 25 20 15 10) равна 30, кроме того, есть 5 элементов меньше 15, что намного меньше 30% от 45, которые упоминаются в википедии

и поэтому T(n) не получается.

Кстати, в примере из Википедии я получаю результат рекурсии 36. Однако истинная медиана равна 47.

Поэтому я думаю, что в некоторых случаях эта рекурсия может не вернуть истинную медиану медиан. Я хочу понять, где моя ошибка.

57
задан crisron 25 April 2016 в 14:45
поделиться