Изменения

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

Получение номера по объекту

29 байт убрано, 20:19, 5 декабря 2013
Нет описания правки
*was[1..n] {{---}} использовали ли мы уже эту цифру в перестановке.
'''for''' i = 1 '''to''' n '''do''' ''// n - количество цифр элементов в перестановке''
'''for''' j = 1 '''to''' a[i] - 1 '''do''' ''// перебираем элемент, лексикографически меньший нашего, который может стоять на i-м месте
'''begin''' '''if''' was[j] == false ''// если элемент j ранее не был использован '''then''' numOfPermutation += P[n - i] ''// все перестановки с префиксом длиной i-1 равным нашему, и i-й элемент у которых '''end''' ''меньше нашего в лексикографическом порядке, идут раньше данной перестановки was[a[i]] = true ''// i-й элемент использован
Данный алгоритм работает за <tex>O(n ^ 2) </tex>.
48
правок

Навигация