|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Ihor.Bobak@nestle.ua 2:5020/400 30 May 2002 16:45:49 To : Oleg Prizov Subject : Re: перестановки -------------------------------------------------------------------------------- OP> Как рекурсивно это сделать, ещё понятно. А вот хотелось бы сделать OP> это итеративно... Порядок следования перестановок не важен. OP> Помогите, если можете, плз a[1]...a[n]. Вначале a[i]=i. начало: i := n; while (a[i-1] > a[i]) and (i>1) do dec(i); if i = 1 then конец; Как только a[i-1] <= a[i] для некоторого i, так сразу меняешь местами a[i-1] и min(a[x], x=i...n) и сортируешь a[i]...a[n] по возрастанию - вот тебе и новая комбинация. goto начало Это даст все перестановки в лексикографическом порядке. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3487632be8f0.html, оценка из 5, голосов 10
|