- •11. Объясните метод пошаговой детализации ( последовательного уточнения ) разработки алгоритмов. Назовите особенности использования массивов в качестве параметров ?
- •12 Дайте определение организации библиотеки. Назовите стандартные библиотечные модули и модули пользователя. Объясните структуру Unit .
- •13 Дайте определение символьным переменным и строкам.
- •14 Дайте определение множествам. Приведите примеры операций над множествами.
- •15 Дайте определение записи. Объясните структуру объявления типа запись. Приведите примеры обращения к значению поля. Дайте определение массиву записей.
- •16 Дайте описание основным понятиям поиска данных. Объясните принцип линейного поиска в упорядоченном массиве.
- •17. Дайте понятие сортировки. Назовите виды сортировок. Обьясните принцип сортировок.
- •Обменная сортировка разделением
- •18 Дайте определение алгоритмов включениями.
- •19. Дайте описание алгоритмов обменных сортировок.
- •20 Дайте определение рекуррентным выражениям. Дайте определение понятию рекурсия. Назовите Достоинства и недостатки рекурсивных программ. Приведите примеры рекурсивных процедур и функций.
Обменная сортировка разделением
Этот метод называется еще быстрой сортировкой. Быстрая сортировка основана на том факте, что для достижения наибольшей эффективности желательно производить обмены элементов на больших расстояниях. Реализуется она на основе следующего алгоритма.
Выбирается любой произвольный элемент массива, далее массив просматривается слева направо до тех пор пока не будет найден элемент больший выбранного; а затем просмотрим его справа налево, пока не найдем элемент меньший выбранного. Найденные элементы поменяем местами. Затем продолжим процесс “просмотра с обменом”, пока два просмотра не встретятся где-то в середине массива. В результате массив разделится на две части: левую - с ключами меньшими выбранного элемента; и правую - с большими ключами. Описанный алгоритм применяется к обоим этим частям, в результате чего последовательность разбивается на 4 части. Алгоритм применяется к каждой четвертинке и т.д. Разделение заканчивается, когда в каждой части остается 1 элемент.
18 Дайте определение алгоритмов включениями.
Сортировка прямым включением. Элементы условно разделяют на готовую a[1],...,a[i-1] и входную последовательности a[i],...,a[n]. Сначала i=2. На каждом шаге, увеличивая i на единицу, берут i-й элемент входной последовательности и передают в готовую последовательность, вставляя на подходящее место.
Итак, в начале рассматривается второй элемент (i=2) последовательности ключей. Он сравнивается с первым элементом (a[i-1]) и если он его меньше, то они меняются местами. В противном случае проход заканчивается, i увеличивается на 1 и процесс повторяется. Заметим, что упорядоченная последовательность a[i-1] называется готовой последовательностью и новый элемент вставляется в готовую последовательность на свое место.
Сортировка бинарными включениями. Алгоритм сортировки прямыми включениями можно легко улучшить, пользуясь тем, что готовая последовательность a[1],...,a[i-1], в которую нужно включить новый элемент, уже упорядочена. Поэтому место включения можно найти значительно быстрее, применив бинарный поиск, который исследует средний элемент готовой последовательности и продолжает деление пополам, пока не будет найдено место включения. Модифицированный алгоритм сортировки называется сортировкой бинарными включениями.
19. Дайте описание алгоритмов обменных сортировок.
Метод пузырька
( метод назван также обменной сортировкой с выбором)
Идея этого метода отражена в его названии. Самые легкие элементы массива "всплывают" наверх, самые "тяжелые" - тонут. Алгоритмически это можно реализовать следующим образом. Мы будем просматривать весь массив "снизу вверх" и менять стоящие рядом элементы в там случае, если "нижний" элемент меньше, чем "верхний". Таким образом, мы вытолкнем наверх самый "легкий” элемент всего массива. Теперь повторим всю оперно для оставшихся неотсортироваными N-1 элементов (т.е. для тех, которые лежат "ниже" первого. Как видно, алгоритм достаточно прост, но, как иногда замечают, он является непревзойденным в своей неэффективности. Немного более эффективным, но таким наглядным является второй метод.