Необходимо разбить массив на N (2 в моем случае) равных по сумме массива. Есть 2 решения:
1 - перебором -- оптимально по результату, не оптимально по этическим соображениям
2 - следующий алгоритм:
1. сортируем начальный массив по убыванию.
1.1 A = [], B = [];
2. пока в начальном массиве есть элементы
2.1 ищем массив с мин. суммой из (A и B), кладем в него 0-й элемент из начального массива, удаляем его из начального массива.
2.2 goto 2
во втором варианте на начальном массиве [24,24,20,20,20], получаем
A = [24,20], B = [24,20,20], неплохо, но не оптимально, оптимально будет
A = [24,24], B = [20,20,20]
Есть предложения ?
Разбиение массива на n равных по сумме |