
- •1. Алгоритмы: терминология, свойства, виды, запись.
- •1.4. Операции над числовыми типами
- •2. Битовые типы
- •3. Логический тип
- •4. Символьный тип
- •5. Перечислимый тип
- •6. Интервальный тип
- •6. Статические и динамические структуры данных. Линейные и нелинейные динамические структуры.
- •7. Основные структуры данных. Множества. Массивы. Записи.
- •8. Понятия и цели сортировки. Сортировки массивов и сортировки файлов. Терминология.
- •9. Внутренняя сортировка и ее виды. Требования к методам сортировки массивов. Меры эффективности.
- •10. Простая сортировка обменом. Сравнение методов сортировки.
- •11. Сортировка простым выбором. Сравнение методов сортировки.
- •12. Сортировка простыми вставками. Сравнение методов сортировки.
- •13. Шейкер-сортировка. Сравнение методов сортировки.
- •14. Сортировка включениями с убывающим приращением (сортировка Шелла).
- •15. Сортировка с разделением (быстрая сортировка).
- •16. Сортировка подсчетом. Сравнение методов сортировки.
- •17. Сортировка слиянием. Сравнение методов сортировки.
- •18. Внешняя сортировка. Алгоритмы внешней сортировки.
- •19. Понятие кучи. Основные процедуры и функции для работы с динамической памятью.
- •20. Динамические структуры данных. Указатели.
- •21. Динамические структуры данных. Классификация.
- •22. Связные списки. Виды связных списков. Способы представления.
- •23. Односвязные линейные списки. Последовательное распределение.
- •Интерполяционный поиск
- •47. Внешний поиск в б-деревьях.
- •48. Цифровой поиск.
1. Алгоритмы: терминология, свойства, виды, запись.
Определение: Алгоритм - это заданное на некотором языке, конечное предписание, задающее конечную последовательность выполняемых и точно определенных элементарных операций для решения задачи.
Свойства:
Дискретность - разбивка алгоритма на конечное число шагов. Определенность - определенная команда на каждом шаге. Детерминированность - выполнение на каждом шаге единственного действия.
Понятность - для программиста и для компилятора.
Массовость - применяется ко многим входным данным.
Конечность/Завершаемость - действие алгоритма когда-нибудь закончится.
Результативность - завершение алг-ма определенным результатом за конечное время.
Виды:
Механические - действия, заданные в последовательности.
Гибкие:
Стохастические - вероятностный, такой алг. дает решение неск. путями, прив. к вероятному достижнию цели.
Эвристические - алг., правильность которого для всех возможных случаев не доказана, но известно, что он дает достаточно хорошее решение в большинстве случаев.
Также бывают: линейные, разветвляющиеся, циклические, вспомогательные алгоритмы.
Блок-схема тоже является алгоритмом.
2. Трудоемкость алгоритмов: наилучший случай, наихудший случай, трудоемкость в среднем, усредненная оценка трудоемкости группы операций.
3. Определение времени работы алгоритмов. Анализ сложности по программе.
4. Структуры данных. Уровни представления структур данных. Классификация структур данных.
5. Структуры данных. Простые структуры данных.
1. Числовые типы
1.1.Целые типы
1.2. Вещественные типы
В отличии от целых типов, значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляются в памяти машины абсолютно точно, значение вещественных типов определяет число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
1.3. Десятичные типы
Десятичные типы поддерживаются не всеми языками программирования. Эти типы применяются для внутримашинного представления таких данных, которые в первую очередь должны храниться в вычислительной системе и выдаваться пользователю по требованию, и лишь во вторую очередь - обрабатываться (служить операндами вычислительных операций). Архитектура некоторых вычислительных систем предусматривает команды, работающие с десятичным представлением чисел.
1.4. Операции над числовыми типами
Над числовыми типами, как и над всеми другими, возможны прежде всего четыре основных операции: создание, уничтожение, выбор, обновление. Специфические операции над числовыми типами - хорошо известные всем арифметические операции: сложение, вычитание, умножение, деление. Операция возведения в степень в некоторых языках также является базовой и обозначается специальным символом или комбинацией символов, в других - выполняется встроенными функциями.
Еще одна группа операций над числовыми типами - операции сравнения: "равно", "не равно", "больше", "меньше" и т.п. Существенно, что хотя операндами этих операций являются данные числовых типов, результат их имеет логический тип - "истина" или "ложь".