Re: Перестановки
- From
- Oleg Khovayko ()
- To
- Sergey Bestuzhev
- Date
- 2002-12-29T19:41:07Z
- Area
- RU.ALGORITHMS
From: Oleg Khovayko <olegh@hotpop.com>
Sergey Bestuzhev wrote:
> Есть 2х мерный массив, в каждой строке по слову, нужно найти все перестановки
> этих слов,
Брр!! Ты подразумеваешь одномерный массив строк, что ли?
> но не рекурсией ей я знаю как. Или хотяб мысли по этому поводу.
Какие мысли... Учите матчасть! То есть библиотеки.
> (Чтобы небыло упреков говарю сразу:Это не в институт!!! Просто очень надо.)
Ну раз надо - так бери.
Написано на C++ с использованием STL-ной функции, генерящей
перестановки.
Как видишь - дешево и эффективно:
/*---------------------- INCLUDES & DEFINES --------------------*/
#include <string>
#include <vector>
#include <iostream>
#include <numeric>
using namespace std;
typedef vector<string> VS;
#define ALL(V) V.begin(),V.end()
#define PV(V)
cout<<#V<<"={|";copy(ALL(V),ostream_iterator<typeof(*(V.begin()))>(cout,"|"));cout<<"}\n";
//---------------- main () ----------------
const char *strings[] = { "First", "Second", "Third", "Fourth" };
int main () {
VS mas(strings, strings + sizeof(strings)/sizeof(char*));
sort(ALL(mas));
do { PV(mas); } while(next_permutation(ALL(mas)));
return 0;
}
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)