Я хочу понять «медиана медиан» алгоритма на следующем примере:Понимание «алгоритм выбора» Алгоритм
Мы 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
- Первый шаг сортировки каждой группы (в этом случае они уже отсортированный)
Второй шаг рекурсивно, фи-й «истинный» медиана медиан (
50 45 40 35 30 25 20 15 10
), то есть набор будет разделены на 2 группы:50 25 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, которые указаны в wikipedia
и поэтому T(n) <= T(n/5) + T(7n/10) + O(n)
не удается.
Кстати в примере Википедии, я получаю результат рекурсии 36. Однако истинная медиана 47.
Так что, я думаю, что в некоторых случаях эта рекурсия не может вернуть истинную медиана медиан. Я хочу понять, где моя ошибка.
@kaoD: Политика сообщества на сайте: «Признайте, что вопрос - домашнее задание». См. Http: //meta.stackexchange.com/a/10812 – Orbling
@kaoD: Ничего принципиально неправильного в публикации вопроса о домашнем задании, но это влияет на то, как большинство участников отвечает на вопрос. Таким образом, это должно быть указано как таковое, и какой прогресс был продемонстрирован. Ответы, как правило, направлены на руководство, а не на решение. – Orbling
@Orbling - это актуально? Какова бы ни была причина этого вопроса, smnvhn (как и другие) сможет извлечь уроки из хорошего ответа. Думаю, этот вопрос сам по себе уже показывает, что smnvhn уже задумался над этим. Таким образом, если это окажется действительно домашним заданием, плакат узнает больше о любых опубликованных замечаниях или ответах. – Joris