Я принимаю comp 2210 (Data Structures) в следующем семестре, и я делаю домашнее задание на летний семестр, который публикуется в Интернете. До сих пор у меня не было проблем с выполнением заданий. Взгляните на назначение 4 ниже и посмотрите, можете ли вы дать мне подсказку о том, как подойти к нему. Пожалуйста, не предоставляйте полный алгоритм, просто подход. Благодаря!Сортировка массива в порядке возрастания при минимизации «стоимости»
«Costed sort» - это алгоритм, в котором последовательность значений должна быть упорядочена в порядке возрастания. Сортировка осуществляется путем изменения положения двух значений по одному, пока последовательность не будет в правильном порядке. Каждый обмен несет стоимость, которая рассчитывается как сумма двух значений, участвующих в обмене. Общая стоимость стоимости сортировки - это сумма стоимости обменов.
Например, начальная последовательность была {3, 2, 1}. Одним из возможных серии развязок является
Interchange 1: {3, 1, 2} interchange cost = 0
Interchange 2: {1, 3, 2} interchange cost = 4
Interchange 3: {1, 2, 3} interchange cost = 5,
given a total cost of 9
Вы должны написать программу, которая определяет минимальную стоимость, чтобы организовать определенную последовательность чисел.
Редактировать: Профессор не допускает грубой силы.
Вам разрешено только перемещать смежные значения? – Bubblewrap
Нет, любые элементы могут быть взаимозаменяемы. – dacman
Это, безусловно, академическая проблема - в реальной жизни, это сравнения, которые стоят много, а не обмены. В общем, алгоритм, который минимизирует количество ходов любого типа, скорее всего, будет лучше –