Алгоритм балансирования предметов разных размеров в грубо сбалансированных наборах
Я ищу алгоритм, чтобы разбить список элементов разных размеров на число "N" групп одинакового размера.
В частности, я работаю над сайтом ASP.NET в C #, где у меня есть (извлеченный из базы данных) список строк. Струны имеют различную длину. У меня есть набор столбцов, которые должны отображать строки. Мне нужен алгоритм, который найдет наиболее сбалансированные наборы (порядок элементов не имеет значения), чтобы последние столбцы были максимально сбалансированы.
Абстрактный пример:Создание 3 столбцов.
Предметы для распространения:
- Item A - height 5
- Item B - height 3
- Item C - height 7
- Item D - height 2
- Item E - height 3
Желаемый вывод:
Column 1: Item A, Item D
Column 2: Item C
Column 3: Item B, Item E