
- •Варианты заданий для курсового проектирования по дисциплине ен.Ф.02 – «Информатика и программирование».
- •II семестр изучения, раздел «Структуры данных и прикладные алгоритмы»
- •Часть 1. Задачи на структуры данных
- •16. Моделирование системы массового обслуживания.
- •17. Моделирование системы массового обслуживания.
- •Часть 2. Прикладные алгоритмы
- •3.1.2.1.3.4. Сортировка с вычислением адреса
- •3.1.2.1.3.5. Сортировка двухпутевыми вставками
- •3.1.2.2.1. Простой выбор
- •3.1.2.2.3. Задачи на сортировки выбором.
- •3.1.2.2.3.3. Сортировка методом квадратичного выбора.
- •3.1.2.3.1. Простой обмен (пузырьковая сортировка)
- •3.1.2.3.3.5. Сортировка методом подсчета
- •3.1.2.3.3.6. Сортировка методом распределяющего подсчета
- •3.1.2.3.3.7. Сортировка методом четных и нечетных транспозиций
- •3.1.2.4.1. Сортировка слиянием
- •3.1.2.4.4. Задачи на другие сортировки
- •3.1.2.4.4.1. Объединение массивов
- •3.1.2.4.4.2. Бинарное слияние
- •3.1.2.4.4.3. Рекурсивное слияние
- •3.1.2.4.4.4. Естественное слияние
- •3.1.3.1.1.1. Метод перемещения в начало.
- •3.1.3.1.1.2. Метод транспозиции.
- •3.1.3.5.2. Поиск в двусвязном списке
3.1.2.1.3.4. Сортировка с вычислением адреса
К сортировкам вставками относится также сортировка с вычислением адреса. В этом методе строится набор списков, количество которых равно количеству элементов массива. Затем к каждому элементу массива применяется некоторая функция f. Результат этой функции определяет, в какой из списков будет помещена данная запись. Эта функция должна иметь то свойство, что если х<у, то f(x)<f(y). Такая функция называется функцией, сохраняющей порядок. Все записи в одном списке будут иметь ключи, которые меньше или равны ключам записей в другом списке. Элемент помещается в список в правильной последовательности при помощи использования любого метода сортировки, например сортировки простыми вставками. После того как все элементы первоначального массива будут помещены в списки, эти списки могут быть соединены для того, чтобы получить отсортированный результат.
3.1.2.1.3.5. Сортировка двухпутевыми вставками
Эта сортировка является некоторой модификацией сортировки простыми вставками в следующем виде. Создается некоторый выходной массив размером n. Элемент x[1] помещается в средний элемент этого массива. Когда непрерывная группа элементов находится в этом массиве, место для нового элемента отводится при помощи сдвига всех элементов с меньшими значениями на один шаг влево или элементов с большими значениями на один шаг вправо. Выбор, в какую сторону выполнять сдвиг, зависит от того, какой из них приведет к 3.1.2.1.3.6. Сортировка слиянием вставок
3.1.2.2.1. Простой выбор
Выбирается элемент с наименьшим значением;
он меняется местами с первым;
процесс повторяется для оставшихся n–1 элементов.
Пример:
3.1.2.2.3. Задачи на сортировки выбором.
3.1.2.2.3.3. Сортировка методом квадратичного выбора.
Разделим
n
элементов в файле на
групп по
элементов в каждой
группе. Найдем наибольший элемент в
каждой группе и поместим его в некоторый
вспомогательный массив. Найдем наибольший
элемент в этом вспомогательном массиве.
Этот элемент является наибольшим
элементом в данном файле. Затем заменим
этот элемент в массиве на следующий по
величине элемент в той группе, из которой
он поступил. Снова найдем наибольший
элемент во вспомогательном массиве.
Этот элемент —
второй по величине в данном файле.
Повторим этот процесс до тех пор, пока
файл не будет отсортирован. Напишите
программу, которая реализует сортировку
методом квадратичного выбора.
3.1.2.3.1. Простой обмен (пузырьковая сортировка)
Попарно сравниваются (и при необходимости меняются местами) соседние элементы;
процесс повторяется для оставшихся n – 1 элемента с конца массива; каждый раз наименьший элемент оставшейся части "прогоняется" через эту часть.
Пример (символом # обозначен элемент, занявший окончательное место).
3.1.2.3.3.5. Сортировка методом подсчета
Эта сортировка выполняется следующим образом. Заводится некоторый массив count и элементу count[i] присваивается значение числа элементов, которые меньше или равны a[i]. Затем элемент a[i] помещается в позицию count[i] в выходном массиве. Напишите программу для сортировки массива a размером n, используя этот метод.