Сравнительный алгоритм ранжирования

Я хотел бы ранжировать или отсортировать коллекцию предметов (с размером, потенциально превышающим 100 000), где предметы в коллекции не имеют внутренней (сопоставимой) стоимости, вместо этоговсе, что у меня есть, это сравнение между любыми двумя пунктами которые были предоставлены пользователями в субъективной манере.

Пример: рассмотрим коллекцию с элементами[a, b, c, d] и сравнения пользователейb > a, a > d, d > c, Правильный порядок этой коллекции будет[b, a, d, c].

Этот пример прост, однако могут быть более сложные случаи:

Поскольку сравнения субъективны, пользователь также может сказать, чтоc > b, В этом случае это может привести к конфликту с порядком выше.Также вы можете не иметь сравнений, которые «связывают» все элементы, т.е.b > a, d > c, В этом случае порядок неоднозначен. Возможно[b, a, d, c] или же[d, c, b, a], В этом случае любой заказ является приемлемым.

Если возможно, было бы неплохо как-то учесть несколько экземпляров одного и того же сравнения и придать большее значение тем, у кого более высокие случаи. Но решение без этого условия все равно будет приемлемым.

Аналогичное приложение этого алгоритма использовалось приложением Цукерберга FaceMash, где он оценивал людей на основе сравнений (если я правильно понял), но я не смог найти, что это был за алгоритм на самом деле.

Есть ли алгоритм, который уже существует, который может решить проблему выше? Я не хотел бы тратить усилия, пытаясь придумать один, если это так. Если нет конкретного алгоритма, возможно, есть ли определенные типы алгоритмов или методов, на которые вы можете указать мне?

Ответы на вопрос(3)

Ваш ответ на вопрос