Алгоритм на псевдокоде


(на примере пузырьковой сортировки)

B:=(1,2,…,n)

DO (i=1,2,…,n-1)

DO(j=n,n-1,…,i+1)

IF(a[bj]< a[bj-1]) bi↔bj-1 FI

OD

OD

 

Отметим ряд положительных свойств индексации.

1. Индексация дает возможность построения нескольких различных индексов, которые можно использовать по мере необходимости.

2. Исключается копирование больших массивов данных (физический массив остаётся на месте, а индексы занимают мало места).

3. Имеется возможность фильтрации данных. Фильтрация означает, что при работе с базами данных используются не все элементы, а только те, которые отвечают определённым условиям. В индекс включаются физические номера тех элементов, которые удовлетворяют условию фильтра.

8.3 Индексация через массив указателей

Индексация через массив указателей отличается от обычной индексации тем, что вместо номеров элементов в индексный массив записываются адреса сортируемых элементов. К достоинствам такой индексации можно отнести то, что исходные данные могут располагаться не только в массиве, а произвольным образом в динамической памяти.

8.4 Варианты заданий

Написать программу «Телефонный справочник». Каждый абонент имеет имя, адрес, телефонный номер. С помощью индексов и фильтров

1. упорядочить справочник по имени по возрастанию

2. упорядочить справочник по телефонному номеру по возрастанию

3. упорядочить справочник по адресу по убыванию

4. выбрать тех абонентов, которые имеют номер в заданном диапазоне

5. упорядочить справочник по имени и телефонному номеру по возрастанию

6. выбрать тех абонентов, которые имеют имя в заданном диапазоне

7. выбрать абонентов, которые имеют имя и адрес в заданном диапазоне

 

9. Двоичные деревья

9.1 Основные определения и понятия

Определим двоичное дерево следующим образом :

1. Отдельная вершина V является двоичным деревом.

2. Двоичное дерево – это вершина V, соединенная с (возможно пустыми) левым (ТL) и правым (ТR) двоичными деревьями.

Пример двоичного дерева приведен на следующем рисунке. Вершины дерева обозначаются кружочками, связи между вершинами стрелками.

 

Рисунок 27 Пример двоичного дерева

Каждая вершина дерева может содержать какую-либо информацию. Выделенная вершина дерева называется корнем.Концевые вершины дерева, не имеющие поддеревьев, называются листьями.Дуги ориентированы по направлению от корня к листьям. Путь от корня к листу называется ветвью. Под длиной ветви будем понимать число входящих в неё вершин. Высота дерева h определяется как число вершин в самой длинной ветви дерева. Размер дерева – число входящих в него вершин. Средней высотой дерева называется усредненная по количеству вершин в дереве сумма длин путей от корня к каждой вершине.

Приведем некоторые свойства двоичных деревьев.

Свойство 1. Максимальное число вершин в двоичном дереве высоты h равно

nmax(h)= 2h – 1

 

Свойство 2. Минимально возможная высота двоичного дерева с n вершинами равна hmin(n) = élog(n+1)ù

9.2 Различные обходы двоичных деревьев

При разработке алгоритмов для работы с деревьями будем считать, что каждая вершина содержит некоторые данные и указатели на вершины слева и справа. Поэтому вершина дерева это переменная специального типа. В качестве заголовка для дерева используем переменную Root, указывающую на корень.

type pVertex = ^tVertex;

tVertex =record

Data: integer;

Left: pVertex;

Right: pVertex;

end;

VAR Root: pVertex;

При решении многих задач, связанных с деревьями, часто возникает необходимость перебрать все вершины дерева или совершить обход дерева, чтобы выполнить некоторые действия с каждой вершиной дерева.

Существуют три основных порядка обхода дерева:

1. Сверху вниз (↓): корень, левое поддерево, правое поддерево.

2. Слева направо (→): левое поддерево, корень, правое поддерево.

3. Снизу вверх (↑): левое поддерево, правое поддерево, корень.

Пример. Совершить обход слева направо для двоичного дерева, изображенного на рисунке 28.

Результат обхода: 4 2 5 1 3 6

 

Рисунок 28

Обходы легко программируются с помощью рекурсивных процедур.

 



Дата добавления: 2022-02-05; просмотров: 195;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.