У меня есть большой массив данных счета, который сортируется по дате счета. Я хотел бы обобщить данные по некоторой функции даты, например: по месяцам, кварталам и т. Д. Поскольку массив очень велик, я хотел бы использовать многопоточность и обрабатывать несколько частей массива параллельно , в разных потоках.Как разбить массив на четные куски для параллельной обработки
Я ищу алгоритм для разбиения массива на N кусков, как можно больше по размеру, с условием, что не будет двух элементов массива, для которых функция преобразования даты дает тот же результат, что и заканчиваются двумя разными кусками.
Так, например, если я захочу разделить его по месяцам, все счета за ноябрь 2014 будут обрабатываться тем же потоком.
Мне просто интересно, была ли это известная проблема с именем, для которого уже существует алгоритм, что избавит меня от переосмысления колеса.
Разделите массива по количеству потоков, доступных, но выполнить нижний поиск ограничения на ключ в месте раздела элементов, чтобы убедиться, что нет ключевые значения будут в отдельных разделах. –
Вы можете найти пример и решить его подойдут именно так. –