Алгоритм получения максимального количества массивов из данного.

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

Ответить
tony
Сообщения: 1
Зарегистрирован: 12 дек 2009, 14:17

12 дек 2009, 14:29

Прошу помочь с алгоритмом получения максимального количества массивов из данного, при чем количество элементов в получаемых массивах должно быть равно N, не должно быть повторений.
Предположим, у нас есть массив [1,2,3] при N=2, мы должно получить:
[1,2]
[1,3]
[2,1]
[3,1]
[2,3]
[3,2]
Буду благодарен за любую подсказку.
Аватара пользователя
Decoder
Сообщения: 303
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

14 дек 2009, 01:50

А в чём сложность? Два цикла (при N=2), один внутри другого. Оба цикла перебирают один и тот же исходный массив. Если индексы массива в первом цикле и во втором совпадают, то такая комбинация игнорируется, а в остальных случаях индекс массива из первого цикла и индекс массива второго цикла образуют пару значений элементов.
Если N > 2, то и количество циклов, вложенных один в другой, будет больше.
Либо можно реализовать этот алгоритм с помощью рекурсии, тогда не придётся вкладывать один цикл внутрь другого.
Поумнеть несложно, куда труднее от дури избавиться.
Ответить