
- •1. Условный оператор, оператор выбора
- •5. Метод пошаговой детализации (последовательного уточнения) разработки алгоритмов.
- •2. Операторы организации циклов
- •3. Обработка двумерных массивов.
- •4. Процедуры и функции
- •37. Алгоритмы генерирования k-элементных подмножеств множества
- •6. Использование множеств для решения задач
- •7. Процедуры и функции обработки строк
- •8. Сортировка и поиск информации. Методы внутренней сортировки: Сортировка «пузырек»
- •9.Сортировка подсчетом.
- •10.Сортировка простым обменом
- •11. Методы внутренней сортировки: «Шейкер-сортировка»
- •12. Методы внутренней сортировки: Сортировка «Хаора»
- •14. Методы внутренней сортировки: Пирамидальная сортировка
- •16.Сортировка бинарными вставками
- •17. Методы внутренней сортировки: Сортировка «Шелла»
- •15 Сортировка простыми вставками.
- •19.Чтение типизированных файлов
- •18. Сортировка слиянием
- •20.Алгоритмы удаления записей типизированного файла.
- •19.Сортировка естественным слиянием.
- •28. Динамическая структура очередь, ее создание и использование.
- •20. Поразрядная сортировка
- •32. Деревья: построение бинарного дерева
- •52.Чтение типизированных файлов
- •21. Рекуррентные выражения. Рекурсия: прямая и косвенная.
- •22.Стандартные процедуры и функции Unit Graph.
- •53.Алгоритмы удаления записей типизированного файла.
- •27. Динамическая структура стек, ее создание и использование.
- •34. Алгоритмы генерирования перестановок (антилексикографическом порядке )
- •29. Списки: односвязные
- •33. Алгоритм генерирования перестановок в лексикографическом порядке.
- •30.Списки: двухсвязные
- •31. Динамическая структура кольцо, ее создание и использование.
- •34. Алгоритмы генерирования перестановок
- •51. Создание типизированных файлов.
- •36. Алгоритмы генерирования множества всех подмножеств
- •65. Создание таблиц базы данных с помощью Database Desktop.
- •38. Введение в теорию графов. Способы представления ориентированных и неориентированных графов: матрицы смежности
- •39. Поиск в ширину в графе
- •40. Поиск в глубину в графе
- •41,42. Построение остовного дерева графа.
- •43. Поиск кратчайшего пути в графе (Алгоритм Дейкстры)
- •44.Алгоритм Форда поиска кратчайших расстояний в графе.
- •45.Алгоритм Флойда поиска кратчайших расстояний в графе.
- •46. Алгоритмы с возвращением, их реализация с помощью рекурсий и динамических структур. Примеры алгоритмов с возвращением.
- •50.Типизированные файлы, их назначение и использование. Основные процедуры обработки типизированных файлов
- •47,48. Типы файлов, объявление, логическая и физическая организация файловой системы, процедуры и функции обработки файлов
- •67,68 Компоненты страниц Data Access, Data Controls. Создание базы данных, псевдонима бд
- •62 Компоненты страницы Samples, их назначение, свойства, примеры применения
- •56.Полиморфизм. Виртуальные методы. Таблица виртуальных методов
- •54.Понятие объекта.(класса). Инкапсуляция. Иерархия классов (типов). Правила наследования
- •57. Компоненты страницы Standard, их назначение, свойства, примеры применения.
- •49. Нетипизированные файлы
- •58.Компоненты страницы Additional, их назначение, свойства, примеры применения
- •1. TBitBtn
- •2. TSpeedButton
- •3. TMaskEdit
- •4. TDrawGrid
- •60. Компоненты страницы System, их назначение, свойства, примеры применения
- •71. Создание справочной системы
- •61,. Компоненты страницы Dialogs их назначение, свойства, примеры применения
- •63. Задание и изменение свойств компонентов с помощью Инспектора объектов и программно
- •64. Обработка событий, связанных с использованием компонентов.
- •70. Мультимедийные возможности Delphi
- •66. Создание и использование модуля данных Data Module.
- •69. Графические возможности Delphi
20. Поразрядная сортировка
Лексикографическая или поразрядная сортировка (RADIX-сортировка) — быстрый и устойчивый алгоритм сортировки за линейное время, использовалась в устройствах для сортировки перфокарт. Пригодна для сортировки любых элементов, состоящих из цепочек над фиксированным алфавитом, на котором задано отношение сравнения. Для сортировки следует применять любой устойчивый алгоритм, используя в качестве ключа сначала младшую букву, затем повторять этот процесс для более старших букв.
Алгоритм
Каждое число представляется в двоичном виде. Поиск движется в 2 направлениях: снизу ищем 0, сверху - 1. Разбиваем на 2 интервала, чтобы предотвратить неправильную сортировку и сортируем по 2 биту. По старшему биту ищем сверху 1, а снизу 0, меняем местами. Находим все. Если найдены все, переходим на второй бит и так до тех пор пока не кончатся биты. Требует меньше попыток, быстрее даже чем быстрая сортировка.
Код:
Procedure Radix (l,r:word; a:shorting);
var
t,k,i:word;
Function Bit(a:word; pos:byte):byte;
Begin
Bit:=(a shr pos) and 1;
End;
Begin
If (r>l) and (b>=0) Then
Begin
i:=l;
i:=r;
Repeat
While (i<j) and (Bit(a[i],b)=0) do
inc(i);
While (i<j) and (Bit(a[i],b)=1) do
dec(i);
t:=a[i];
a[i]:=a[j];
a[j]:=t;
Until i=j;
If Bit(a[R],b)=0 Then inc(j);
Radix(l,j-1,b-1);
Radix(j,R,b-1);
End;
End.
32. Деревья: построение бинарного дерева
Бинарные деревья.
Упорядоченное дерево — это дерево, у которого ветви, исходящие из каждой вершины, упорядочены по определенному критерию. Поэтому два упорядоченных дерева на рис. 9.3 — это разные, отличные друг от друга, структуры.
Упорядоченные деревья второй степени (m-арные при m=2) называют двоичными или бинарными деревьями. Упорядоченное бинарное дерево можно определить как множество элементов (вершин), которое либо пусто, либо состоит из корня с двумя отдельными двоичными деревьями, которые называют левым и правым поддеревьями этого корня. Деревья степени больше двух называют сильно ветвящимися деревьями (multiway trees).
При представлении бинарного дерева в виде связного списка каждый элемент может содержать поля данных и два структурных указателя: указатель левого (left) сына и указатель правого (right) сына. На рис. 9.4 изображена логическая структура естественного представления бинарного дерева (пустые поля указателей содержат пустые ссылки). Таким образом, элементы бинарного дерева могут иметь такой тип:
Type Pt = ^Node;
Node = Record
Key : Char;
Left, Right : Pt
End;
где, как и ранее, Kеу — это поле идентифицирующего элемент ключа; Left и Right — поля для структурных указателей.
52.Чтение типизированных файлов
type
TStudent=record
name:string[255];
oz:integer;
end;
var
Student:TStudent;
File:File of TStudent;
begin
AssignFile(F,'test.dat');
Reset(F);
Read(F,Student);
CloseFile(F);
end;