pascal вопросы
1. почему существует большое количество алгоритмов сортировок?
2. с какой целью используются простые сортировки, если они характеризуются малой эффективностью?
3. чем отличается принцип сортировки по неубыванию (невозрастанию) от сортировки по возрастанию (убыванию)?
4. на каких наборах исходных данных проявляется эффективность алгоритмов простых сортировок по сравнению друг с другом?
5. в чем заключается улучшение метода шейкер-сортировки по сравнению с пузырьковой сортировкой?
1. В определенных условиях один из алгоритмов может оказаться эффективнее остальных. Кроме того, у этих алгоритмов различная сложность реализации.
2. С целью упростить программный код.
3. Лишь изменением условия сравнения ключей сортировки. При сортировке по неубыванию ключ последующего элемента должен стать не меньше ключа текущего элемента, при сортировке по невозрастанию - наоборот.
4. На наборах небольшого объема. На упорядоченных в соответствии с требуемым порядком следования ключей сортировки. В общем там, где конкретный алгоритм в минимальной степени производит перестановки элементов.
5. Шейкер-сортировка ведётся в две стороны. На первом шаге наименьший элемент становится первым, затем - наибольший становится последним. На втором шаге на нужные места попадают второй и предпоследний элементы и т.д. Получается, что если при движении по массиву перестановки не происходят, эта часть массива считается отсортированной и исключается из рассмотрения.