Изменения

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

1p1sumu

104 байта добавлено, 20:28, 8 июня 2016
Алгоритм
Будем добавлять в <tex>S</tex> работы в порядке неубывания значений <tex>d_j</tex>, если успеваем их выполнить.
Отсортировать работы так, чтобы '''function''' <tex>d_1 \leqslant d_2 \leqslant \dots \leqslant d_nmathrm{sequence}</tex>(<tex>d</tex>: '''int[]'''): '''int[]''' <tex>S = \varnothing</tex> <tex>time = 0</tex> '''for''' <tex> i = 1 </tex> '''to''' <tex>n </tex> '''do''' <tex>d_i d[i] = \min\{d_id[i], n\}</tex> Сортиуем d подсчетом '''for''' <tex> i = 1 </tex> '''to''' <tex>n </tex> '''do''' '''if''' <tex>time < d_id[i]</tex> <tex>S = S \cup \{ i \}</tex> <tex>time</tex> <code>+=</code> <tex>1</tex> '''return''' <tex>S</tex>
Cортировку работ по неубыванию дедлайнов осуществляем с помощью сортировки подсчетом за <tex>O(n)</tex>, а значит и весь алгоритм будет работать за <tex>O(n)</tex>.
14
правок

Навигация