Перестановки:          

Все перестановки множества abc выглядят следующим образом:
abc, acb,bac,bca,cab,cba. Колличество их - N!
Структуры данных: Массив B[ ] - массив указателей. B[i] равен порядковому номеру элемента исходной последовательности, стоящему в генерируемой последовательности на i-м месте.
Алгоритм генерации:
0) B[i]=i

1) Просматриваем массив B слева на право, пока не найдем элемент меньше предыдущего(обозначим как I).
2) Справа от найденного элемента найдем минимальный J-й элемент, больший I-го.
3) Меняем I и J местами.
4) Переворачиваем часть массива, расположенную правее новой позиции J-го элемента.
5) Повторяем, пока не нашли все перестановки.

 

Hosted by uCoz