
- •1.1.Информатика, как наука и прикладная дисциплина, ее предмет, задачи и разделы. Роль информатики в развитии информационного общества.
- •1.4.Материальные носители информации(данных):физические способы регистрации данных на носителях; виды машинных носителей и каналов связи.
- •1.6.Синтаксические,семантические,прагматические и структурные меры количества информации.
- •2. По месту возникновения.
- •3. По степени стабильности.
- •1.8.Структурные единицы экономической информации.Имя,структура и значение единицы информации. Операции над единицами информации.
- •2.1.Двоичное кодирование информации. Форматы представления числовой информации в компьютере.
- •2.2.Арифметические операции над двоичными числами в формате с фиксированной плавающей точкой.
- •2.3.Принципы двоичного кодирования и внутреннего представления текстовой, графической и звуковой информации.
- •2.4.Понятие о булевых функциях и способах их задания.Основные операции алгебры Буля.Функционально полные системы булевых функций.
- •2.5.Законы алгебры Буля,их применения для преобразования формул булевых функций.
- •2.6.Дизъюнктивно-конъюктивные нормальные формы булевых функций.Преобразование булевых функций к нормальной форме.
- •2.7.Задача минимизаций булевых функций. Теоретические основы ее решения в классе дизъюнктивно-конъюктивных нормальных форм.
- •2.8 Методы минимизации Булевых функций.
- •3.1.Понятие алгоритма. Свойства и формы представления алгоритмов.
- •3.2.Базовые алгоритмические конструкции. Описание алгоритмов в виде композиции базовых конструкций.
- •3.3.Сведение произвольных алгоритмов к числовым функциям. Понятие вычислимой функции. Алгоритмическая полнота эвм.
- •Термины[править | править исходный текст]
- •Порождающие грамматики[править | править исходный текст]
- •Вывод[править | править исходный текст]
- •Типы грамматик[править | править исходный текст]
- •Алгоритмически неразрешимые проблемы
- •Проблема соответствий Поста над алфавитом
- •1. Входные цепочки: (abbb, b), (a, aab), (ba, b)
- •2. Входные цепочки: (ab,aba), (aba,baa), (baa,aa)
- •Тема 4. Структурная организация данных. Теоретические основы поиска и сортировки данных
- •Содержание
- •История[править | править исходный текст]
- •Информационный поиск как процесс[править | править исходный текст]
- •Виды поиска[править | править исходный текст]
- •Методы поиска[править | править исходный текст] Адресный поиск[править | править исходный текст]
- •Семантический поиск[править | править исходный текст]
- •Документальный поиск[править | править исходный текст]
- •Фактографический поиск[править | править исходный текст]
- •Сортировка выбором
- •Сортировка со слиянием
- •Сортировка с помощью дерева (Heapsort)
- •Определения[править | править исходный текст]
- •Узлы[править | править исходный текст]
- •Корневые узлы[править | править исходный текст]
- •Поддеревья[править | править исходный текст]
- •Упорядочивание деревьев[править | править исходный текст]
- •Иерархия каталогов[править | править исходный текст]
- •Классификация файловых систем[править | править исходный текст]
- •Задачи файловой системы[править | править исходный текст]
- •Концептуальный уровень базовой информационной технологии
- •Логический уровень базовой информационной технологии
- •Физический уровень базовой информационной технологии
- •1.Понятие предметноц области(ПрО).Объекты ПрО,их виды и свойства.Связи между объктами.
- •2Понятие интуитивной и формальной модели ПрО.Многоуровневая система моделирования ПрО.
Сортировка со слиянием
Сортировки со слиянием, как правило, применяются в тех случаях, когда требуется отсортировать последовательный файл, не помещающийся целиком в основной памяти. Методам внешней сортировки посвящается следующая часть книги, в которой основное внимание будет уделяться методам минимизации числа обменов с внешней памятью. Однако существуют и эффективные методы внутренней сортировки, основанные на разбиениях и слияниях.
Один из популярных алгоритмов внутренней сортировки со слияниями основан на следующих идеях (для простоты будем считать, что число элементов в массиве, как и в нашем примере, является степенью числа 2). Сначала поясним, что такое слияние. Пусть имеются два отсортированных в порядке возрастания массива p[1], p[2], ..., p[n] и q[1], q[2], ..., q[n] и имеется пустой массив r[1], r[2], ..., r[2?n], который мы хотим заполнить значениями массивов p и q в порядке возрастания. Для слияния выполняются следующие действия: сравниваются p[1] и q[1], и меньшее из значений записывается в r[1]. Предположим, что это значение p[1]. Тогда p[2] сравнивается с q[1] и меньшее из значений заносится в r[2]. Предположим, что это значение q[1]. Тогда на следующем шаге сравниваются значения p[2] и q[2] и т.д., пока мы не достигнем границ одного из массивов. Тогда остаток другого массива просто дописывается в "хвост" массива r.
Пример слияния двух массивов показан на рисунке 2.14.
Рис.
2.14.
Для сортировки со слиянием массива a[1], a[2], ..., a[n] заводится парный массив b[1], b[2], ..., b[n]. На первом шаге производится слияние a[1] и a[n] с размещением результата в b[1], b[2], слияние a[2] и a[n-1] с размещением результата в b[3], b[4], ..., слияние a[n/2] и a[n/2+1] с помещением результата в b[n-1], b[n]. На втором шаге производится слияние пар b[1], b[2] и b[n-1], b[n] с помещением результата в a[1], a[2], a[3], a[4], слияние пар b[3], b[4] и b[n-3], b[n-2] с помещением результата в a[5], a[6], a[7], a[8], ..., слияние пар b[n/2-1], b[n/2] и b[n/2+1], b[n/2+2] с помещением результата в a[n-3], a[n-2], a[n-1], a[n]. И т.д. На последнем шаге, например (в зависимости от значения n), производится слияние последовательностей элементов массива длиной n/2 a[1], a[2], ..., a[n/2] и a[n/2+1], a[n/2+2], ..., a[n] с помещением результата в b[1], b[2], ..., b[n].
Для случая массива, используемого в наших примерах, последовательность шагов показана в таблице 2.9.
Таблица 2.9. Пример сортировки со слиянием
Начальное состояние массива |
8 23 5 65 44 33 1 6 |
Шаг 1 |
6 8 1 23 5 33 44 65 |
Шаг 2 |
6 8 44 65 1 5 23 33 |
Шаг 3 |
1 5 6 8 23 33 44 65 |
При применении сортировки со слиянием число сравнений ключей и число пересылок оценивается как O(n?log n). Но следует учитывать, что для выполнения алгоритма для сортировки массива размера n требуется 2?n элементов памяти.
Методы сортировки с использованием деревьев сравнений, их эффективность.