34
правки
Изменения
Нет описания правки
===Псевдокод===
<code> '''for''' i = 1 '''to''' n '''if''' i <= k a[i] = 1; '''else''' a[i] = 0; random_shuffle(a); '''for''' i = 1 '''to''' n '''if''' a[i] == 1 insertInAnswer(i);</code>
===Доказательство корректности алгоритма===
===Оценка временной сложности===
Заметим, что алгоритм состоит из 2 невложенных циклов по <tex>n</tex> итераций каждый и функции генерации случайной перестановки <tex>random_shuffle()</tex>, работающей за <tex>O(n)</tex> по алгоритму [[Метод генерации случайной перестановки, алгоритм Фишера-Йетса|Фишера Йетца]]. Следовательно, временная сложность и всего алгоритма <tex>O(n)</tex>
== См. также ==