Можете ли вы помочь отследить алгоритм быстрой сортировки для массива, содержащего эти элементы?

1 Ответы


  • Насколько я понимаю, быстрая сортировка заключается в том, что вы сравниваете запись в массиве с другими записями, и если сравниваемая запись больше или меньше первой записи, в зависимости от того, хотите ли вы сортировать по возрастанию или по убыванию, вы меняете их позиции.
    Существует два общих метода: один работает на месте и не требует другого хранилища, а другой работает с двумя массивами: больше массива и меньше массива.
    Выбранный вами метод должен зависеть от объема хранилища, с которым вам нужно работать. В небольшом списке, таком как у вас, я бы использовал версию на месте.
    Итак, в основном (сортировка по убыванию) сравните 65 с 70, 70 больше, поэтому поменяйте числа. Поскольку все эти числа меньше 255, они могут уместиться в одном байте и быть заменены тремя машинными инструкциями, называемыми «исключающее ИЛИ». На большинстве языков ассемблера он кодируется как «xor» или «xr».
    Поскольку мы поменяли местами 70 и 65, мы начинаем сначала сравнивать 70 с записями ниже. Теперь мы будем сравнивать 70 и 75. 75 больше, так что обменяйтесь снова и начните сравнивать 75. Когда вы пройдете весь список без обменов, список будет отсортирован.

Напишите свой ответ

Ваш ответ появится после модерации