Задать вопрос
Captain
@Captain

Как найти расхождения в сортировке массивов?

Есть одномерный эталонный массив в котором содержатся элементы в правильном порядке. Нужно его сравнить с другим массивом, где порядок элементов может отличаться. И выразить это расхождение нужно какой-то численной метрикой.
Есть ли какие-то готовые решения по этому поводу?
  • Вопрос задан
  • 581 просмотр
Подписаться 4 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 5
Stalker_RED
@Stalker_RED
Если содержимое массивов одинаковое, и отличается только перестановками, то можно применить алгоритм Вагнера-Фишера, или Хишберга если всем операциям кроме транспозиции цену задрать.
Ответ написан
LaRN
@LaRN
Senior Developer
Можно попробовать вычислить разницу между индексами одного и того же элемента в двух массивах и найти сумму этих разниц для всех элементов. Разницу брать по модулю, чтобы плюсы/минусы не влияли на результат.
Если в массивах некоторые элементы дублируются, то нужно запоминать индексы уже проверенных элементов чтобы не сравнивать их повторно.
Ответ написан
Комментировать
sgjurano
@sgjurano
Разработчик
Число транспозиций должно подойти.
Ответ написан
Комментировать
angrySCV
@angrySCV
machine learning, programming, startuping
первыйМассив.зип(второйМассив).мап(абс(первыйЭлемент-второйЭлемент)).сумм
П. С.
если не понятно - то это сумма разностей элементов, по модулю.
если элементы не числа, то вам самостоятельно нужно придумать метрику для сравнения элементов.
Ответ написан
@v_m_smith
лучше бы я пил и курил
Возможно, старый вопрос вам поможет. Там что то интересное про оценку периодических функций через ряды Фурье Как правильно сравнить массивы и оценить их схожесть?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы