== Перестановки ==
Рассмотрим алгоритм получения i-ой в лексикографическом порядке перестановки.
<source lang="c">
f[n]=n!
anspermutation[n] ''//искомая перестановка''''' was[n] ''//использовали ли мы уже эту цифру в переставновке''''' '''for''' i = 1 '''to''' n '''do ''' ''//n-это количество цифр в перестановке''''' alreadyWas = (numOfPermutation-1) div f[n-i] ''// сколько цифр уже полностью заняты предыдущими перестановками'' numOfPermutation = ((numOfPermutation-1) mod f[n-i] ''// сколько цифр уже полностью заняты предыдущими перестановками''''') + 1 ''//сейчас мы должны поставить ту цифру, которая еще полностью не занята, т.е. AlreadyWasalreadyWas+1''''' '''for''' j = 1 '''to''' n '''do''' '''if''' was[j] = false '''then ''' cntFree++ '''if''' cntFree = AlreadyWasalreadyWas+1 '''then ''' ans[i] = j was[j] =w true</source>== Сочетания ==
== Сочетания ==
'''for''' <tex>v \in V</tex>
'''do''' <tex>d[v] \gets +\infty</tex>
<tex>d[s] \gets 0</tex>
'''for''' <tex>i \gets 1</tex> '''to''' <tex>|V| - 1</tex>
'''do for''' <math>(u, v) \in E</math>
'''if''' <tex>d[v] > d[u] + w(u, v)</tex>
'''then''' <tex>d[v] \gets d[u] + w(u, v)</tex>
'''return''' <tex>d</tex>
== Размещения ==
== Битовые вектора ==
== Скобочные последовательности ==