Как отсортировать список покупок по предыдущему заказу? - PullRequest
2 голосов
/ 15 марта 2011

У меня есть несколько списков покупок, упорядоченных по заказу.Теперь я хотел бы объединить все списки, сохраняя порядок сортировки, чтобы получить список, упорядоченный по «идеальному» порядку выбора для моего следующего случая покупки.Как мне это сделать?

Пример:
список A: зубная паста, хлеб, мясо, овощи, молоко, мороженое
список B: компакт-диски, хлеб, фрукты, овощи, сок, сахар,Шоколад
список C: мясо, сок, молоко, сахар

В результате:
(зубная паста, компакт-диски), хлеб, мясо, фрукты, овощи, сок, молоко, сахар (мороженое, Конфеты)
Элементы в скобках имеют неизвестный порядок сортировки в скобках.

1 Ответ

2 голосов
/ 15 марта 2011

Вы должны попробовать Топологическая сортировка .Эта сортировка используется, когда у вас есть частичный порядок (без циклов), определенный для набора элементов.Из начальных списков вы создадите несколько пар частичного порядка и будете использовать их внутри алгоритма топологической сортировки.

Например, вы могли бы извлечь следующую информацию из ваших начальных списков:

  • Зубная паста <Хлеб </li>
  • Хлеб <Мясо </li>
  • Мясо <Овощи </li>
  • Овощи <Молоко </li>
  • Молоко <Мороженое </li>
  • CD <Хлеб </li>
  • и т. Д.

Если вы не получитеВ цикле (он же A

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