Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 перестановки   Oleg Prizov   30 May 2002 12:38:23 
 Re: перестановки   Ihor.Bobak@nestle.ua   30 May 2002 16:45:49 
 Re: перестановки   Alexander Krotoff   30 May 2002 16:58:05 
 Re: перестановки   Alexander Kazak   02 Jun 2002 13:18:26 
Архивное /ru.algorithms/3487632be8f0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional