Чтобы раскрыть в ответе оптимальное значение M,
Предположим, что существует некоторая функция стоимости C, связанная с обработкой списка размера M.
Затем вы хотите минимизировать функцию
TotalCost = M * C (N / M) + накладные расходы
, где накладные расходы - это стоимость разделения списка.
Я думаю, что для большинства приложений не было быбольшая разница для разных значений M, поэтому нет смысла разбивать их на части.
Ситуация, в которой это было бы полезно, если у вас несколько процессоров, и вы можете передавать списки другим процессорам.В этом случае функция стоимости была бы больше похожа на
TotalCost = C (N / M) + накладные расходы, если M <число процессоров </p>
, поэтому вы должны выбрать M, чтобы быть близким, но меньшимчем количество процессоров.