Какова самая дорогостоящая операция любого алгоритма сортировки? Это операция обмена или операция сравнения?Самая дорогостоящая операция сортировки
Я думал, что это меняет, но мой друг считает, что это сравнение. Единственным способом, которым я могу оправдать это сравнение, является более дорогостоящая операция, так это то, что каждый элемент нужно сравнивать, но не каждый элемент необходимо поменять местами (т. Е. Если элемент уже находится в правильном положении, его не нужно менять). Поэтому, в целом, в более широкой картине, есть более дешевые сравнения, чем несколько дорогостоящих свопов. Но я не уверен в ответе. Есть предположения?
Это зависит. Для данных на основе дисков доминирующим фактором является ввод-вывод, необходимый для переноса дисковых страниц в память. Когда страницы там, процессор относительно свободен. Для небольших ключей (ints) обмен может быть более дорогим, чем сравнение. При очень малых размерах элементов память (кеш) может стать доминирующей. – wildplasser
(продолжение с wildplasser) ... что означает список, живущий на диске (или виртуальной памяти), обмен более дорогостоящий. Но если список живет в кэш-памяти, тогда замена и сопоставления примерно равны (порядок констант) аналогичных расходов, а затем совокупная стоимость всех свопов или всех сравнений зависит от того, какой алгоритм вы используете. –