Все возможные комбинации слов без дубликатов

 
 
 
Сообщения:10
Всем привет!
Есть массив из N объектов, реализующих Comparable.
Подскажите пожалуйста алгоритм, который бы позволял получить массив из всех возможных комбинаций объектов, желательно без дубликатов и дублирующих данных внутри каждого массива.
Например, метод с входным массивом
["cafe", "babe", "java"]
должен возвращать массив:
[["cafe", "babe", "java"], ["java", "babe", "cafe"], ["babe", "cafe", "java"], ["java", "cafe", "babe"], [и так далее....]]


Под дублирующими внутри данными в данном случае понимается массив вроде
["cafe", "cafe", "babe"], ["cafe", "cafe", "cafe"]
.

Если существует уже готовый алгоритм, подскажите его название или около чего капать, так как я в комбинаторике полный 0.
Изменен:30 окт 2017 08:36
 
 
Сообщения:861
Алгоритм Нарайаны
 
 
Сообщения:10
Роман Осипов:
Алгоритм Нарайаны


Спасибо.

Вот нашел ещё такой, на его реализацию вроде не похоже, что это?

static void permute(String[] a, int k) {
        if (k == a.length) {
            for (int i = 0; i < a.length; i++) {
                System.out.print(" [" + a[i] + "] ");
            }
            System.out.println();
        } else {
            for (int i = k; i < a.length; i++) {
                String temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1, result);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }
Изменен:30 окт 2017 08:35
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет