Изменения

Перейти к: навигация, поиск

Таблица инверсий

324 байта добавлено, 22:18, 24 ноября 2010
м
Нет описания правки
}}
== Алгоритмы построения/восстановления ==  Ниже описанные алгоритмы работают за время О(n^2), но их можно ускорить до О(n*log(n)) ускорив процесс поиска, например двоичными деревьями. == Алгоритм построения ==  Для получения таблицы инверсий из таблицы перестановки вводим таблицу равной по длине таблице перестановки(не умаляя общности длина равна n) и на n-ное место записываем 0; ищем число i(от n-1 до 1) в таблице перестановки, и смотрим: сколько чисел больше i находится слева от числа i, полученное число записываем в таблицу инверсий на i-тое место. == Алгоритм восстановления ==  Для восстановления таблицы перестановки из таблицы инверсий(не умаляя общности длина таблицы равна n) создаем таблицу, которую будем расширять, по мере добавления в неё чисел, добавляем в эту таблицу число i(где i от n до 1) на позицию k+1, где k - число в таблице инверсий на i-том месте. {| width="150" align="right" cellpadding="5" border="1" style="border-collapse: collapse;"
|-
| <span style="font-size:smaller;">Получение таблицы инверсии из таблицы перестановки</span>
[5 9 1 8 2 6 4 7 3] - т. перестановки
|-}
 
== Алгоритм построения ==
 
Для получения таблицы инверсий из таблицы перестановки вводим таблицу равной по длине таблице перестановки(не умаляя общности длина равна n) и на n-ное место записываем 0; ищем число i(от n-1 до 1) в таблице перестановки, и смотрим: сколько чисел больше i находится слева от числа i, полученное число записываем в таблицу инверсий на i-тое место.
 
== Алгоритм восстановления ==
 
Для восстановления таблицы перестановки из таблицы инверсий(не умаляя общности длина таблицы равна n) создаем таблицу, которую будем расширять, по мере добавления в неё чисел, добавляем в эту таблицу число i(где i от n до 1) на позицию k+1, где k - число в таблице инверсий на i-том месте.
21
правка

Навигация