Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
програм.docx
Скачиваний:
5
Добавлен:
16.04.2019
Размер:
78.79 Кб
Скачать

12.Сортировка. Метод выбора

При сортировке этим методом упорядоченная после­довательность записей создается на том же участке памяти, что и исход­ная последовательность. В течение первого прохода осуществляется поиск наименьшего элемента. После того как этот элемент найден, его меняют местами с первым элементом исходной последовательности, в результате чего наименьший элемент занимает первую позицию в фор­мируемой упорядоченной последовательности. Затем осуществляется поиск следующего наименьшего элемента среди оставшихся. Найденный элемент меняется местами со вторым элементом исходной последова­тельности. После второго прохода окажется сформированной последо­вательность из двух элементов, первый из которых меньше второго. Поиск элементов со следующими наименьшими значениями ключа и помещение их в соответствующие позиции исходной последователь­ности продолжается до тех пор, пока все элементы не будут отсорти­рованы в восходящем порядке.

Общее число сравнений С=сумма (от i=1 до N-1)(N-i)=0.5N(N-1) (1)

При сортировке рассмотренным методом число сравнений не зависит от степени упорядоченности исходной последовательности. Поэтому полученное выражение определяет минимальное, максимальное и сред­нее число сравнений. Для оценки среднего числа сравнений можно ис­пользовать следующую аппроксимацию выражения (1): 0,5N2. Такая аппроксимация дает ошибку 1 %. При N=100

Количество перестановок элементов зависит от того, как располо­жены элементы исходной последовательности. Однако в любом случае в течение одного прохода потребуется не более одной перестановки; следовательно, максимальное количество перестановок равно N — 1. В лучшем случае, когда исходная последовательность уже упорядочена, не потребуется ни одной перестановки. Следовательно, среднее число пере­становок пропорционально N/2.

13. Метод обмена (пузырька)

При сортировке этим методом упорядоченная после­довательность создается на том же месте в памяти, где располагалась исходная последовательность. В процессе сортировки производится по­парное сравнение соседних элементов. Если порядок между сравнивае­мыми элементами нарушен, они меняются местами. Этот метод обмена называется часто методом пузырька, так как наименьшие эле­менты с каждым проходом, подобно пузырькам, "всплывают" по направлению к первой позиции последовательности.

После каждого прохода может быть сделана проверка, были ли со­вершены перестановки в течение данного прохода. Если перестановок не было, то это означает, что последовательность упорядочена и дальнейших проходов не требуется. В течение прохода фиксируется последний эле­мент, участвующий в обмене (на рис. 11.2 эти элементы подчеркнуты двойной чертой). В очередном проходе подчеркнутый элемент и все последующие в сравнении не участвуют, так как начиная с этой позиции последовательность уже упорядочена.

Число сравнений для этого метода зависит от числа проходов, необ-ходимых для сортировки. В худшем случае, когда последовательность имеет обратную упорядоченность, в течение каждого i-го прохода выполняются перестановки, а число проходов равно N - 1. При этом для сортировки потребуется максимальное число сравнений Сmax= сумма (от i=1 до N-1)(N-i)=0.5N(N-1)

Число обменов при сортировке методом пузырька зависит от степе­ни упорядоченности исходной последовательности. Если исходная после­довательность полностью упорядочена, то обменов нет.