У меня был алгоритм для решения проблемы, при котором профессор должен сортировать студентов по баллам, таким как 1 для хорошего и 0 для плохого. в минимальном количестве обменов, где только смежные студенты могут поменяться местами. Например, если студенты указаны в последовательности [0,1,0,1], требуется только один обмен [0,0,1,1] или в случае [0,0,0,0,1,1, 1,1] обмен не требуется.
Из описания проблемы я сразу знаю, что это была классическая проблема минимального смежного свопа или инверсии счета, которую мы можем найти в сортировке слиянием. Я попробовал свой собственный алгоритм, а также тот, который указан здесь или на этом сайте , но ни один из них не прошел все тесты.
Наибольшее количество тестов было пройдено, когда я пытаюсь отсортировать массив в обратном порядке. Я также попытался отсортировать массив в порядке, основанном на том, является ли первый элемент массива 0 или 1. Например, если первый элемент равен 1, тогда я должен отсортировать массив в порядке убывания, иначе в порядке возрастания, поскольку студенты могут ни в одной группе все еще никто не работал. Некоторые тестовые случаи всегда терпели неудачу. Дело в том, что когда я сортировал его в порядке возрастания, один тестовый случай, который не был выполнен в случае обратной сортировки, прошел вместе с некоторыми другими, но не со всеми. Так что я не знаю, что я делал неправильно.