Периодическая сортировка n видов продукции - PullRequest
0 голосов
/ 28 августа 2018

мы недавно наткнулись на эту проблему.

У нас есть n различных типов продуктов, где каждый тип продукта может иметь произвольное количество (> = 0) продуктов. Мы хотим «отсортировать» все продукты (все продукты всех типов) в списке, однако некоторые типы продуктов должны вставляться в список в периодическом порядке.

Я хотел бы объяснить на примере: У нас есть 3 различных типа продуктов (ProdA, ProdB, ProdC), и 3 блока ProdA, 4 блока ProdB и 2 блока ProdC. ProdC должен быть вставлен в список с периодом 2.

Один заказ может быть:

  • ProdA1
  • ProdA2
  • ProdC1
  • ProdA3
  • ProdB1
  • ProdC2
  • ProdB2
  • ProdB3
  • ProdC1
  • ProdB4

Посмотрите, как, поскольку ProdC является периодическим и имеет только 2 единицы, единицы повторяются, когда у нас заканчиваются единицы ProdC.

Если одна единица ProdA и одна единица ProdB удалены, мы хотим, чтобы список выглядел следующим образом:

  • ProdA1
  • ProdA2
  • ProdC1
  • ProdB1
  • ProdB2
  • ProdC2
  • ProdB3

Мы не хотим «пересчитывать» весь список.

Мой вопрос: Существует ли общий алгоритм для этого, который включает в себя динамическое "прибегание"?

Спасибо!

1 Ответ

0 голосов
/ 28 августа 2018

Нет. Как только список изменен, позиции для непериодической ProdA, ProdB меняются. Итак, если список является массивом, его память изменилась. Если список является связанным списком, указатели узлов изменяются.

Я предлагаю использовать два списка: один с ProdA и ProdB, а другой только с ProdC. Вы можете создать объединенный список, когда это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...