Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по инфе, лучше пересмотреть их!!!!.docx
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
127.67 Кб
Скачать

13. Понятие сортировки. Основные типы алгоритмов сортировки. Оценка эффективности алгоритмов сортировки

Под сортировкой обычно понимают процесс перестановки объектов данного множества в определенном порядке.

Сортировки обычно разделяют на две категории: сортировка массивов и сортировка последовательных файлов. Их часто называют внутренней и внешней сортировкой, так, как массивы располагаются во внутренней памяти ЭВМ, а файлы хранятся в более медленной, но более вместительной «внешней» памяти, т.е. на запоминающих устройствах с механическим передвижением (дисках, лентах).

Простые методы сортировки – выбором, пузырьковая, вставками

Улучшенные – шелла, Хоара, слиянием

Алгоритмы сортировки оцениваются по скорости выполнения и эффективности использования памяти:

Память— ряд алгоритмов требует выделения дополнительной памяти под временное хранение данных

Время— основной параметр, характеризующий быстродействие алгоритма

14. Схема и алгоритм сортировки методом выбора

Шаги алгоритма:

  1. находим минимальное значение в текущем списке

производим обмен этого значения со значением на первой неотсортированной позиции

теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы

  1. Пирамидальная сортировка сильно улучшает базовый алгоритм, используя структуру данных «куча» для ускорения нахождения и удаления минимального элемента.

  2. Существует также двунаправленный вариант сортировки методом выбора, в котором на каждом проходе отыскиваются и устанавливаются на свои места и минимальное, и максимальное значения.

Пример

void selection(Item a[],int l,int r){

for(int i=l;i<r;i++){

int min=i;

for(int j=i+1;j<=r;j++){

if( a[j]< a[min])

min=j;

}

if(min!=i)

exch(a[i],a[min]);

}

15. Пузырёк

Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.

// проход сверху вниз

for (j=1; j<=ub; j++) {

if ( a[j-1] > a[j] ) {

x=a[j-1]; a[j-1]=a[j]; a[j]=x;

k=j;

16. Алгоритм вставок

1. В качестве отсортированной части массива принимается первый элемент.

2. Берется очередной элемент из несортированной части. Его значение сохраняется в дополнительной переменной.

3. Осуществляется поиск позиции в отсортированной части массива, в которой присутствие взятого элемента не нарушит упорядоченности элементов

4. Для освобождения найденной позиции элементы сдвигаются вправо, после чего на это место вставляется сохраненное ранее значение.

Пункты 2–4 выполняются до полной упорядоченности массива.