Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАСПЕЧ C 8-11 ffice Word (2).docx
Скачиваний:
2
Добавлен:
12.08.2019
Размер:
45.53 Кб
Скачать

Задание 4.

1. Для реквизита, выполним сортировку (по возрастанию) заданной последовательности значений реквизита методами турниров, простых вставок, деревьев сравнений.

Номер покупателя

138

182

238

114

100

115

268

243

215

146

134

Рис. 3.2.1. Заданная последовательность значений

Метод сортировки турниров.

Сортировка начинается с создания листьев дерева. В качестве листьев бинарного дерева создаются узлы, в которых записаны значения элементов исходного массива.

Дерево строится от листьев к корню. Для двух соседних узлов строится общий предок, до тех пор, пока не будет создан корень. В узел - предок заносится значение, являющееся наименьшим из значений в узлах-потомках.

100,

100

100 134

114 100 134

138 114 100 243 146 134

138 182 238 114 100 115 268 243 215 146 134

Рис. 2.6.1.

В результате построения такого дерева наименьший элемент попадает сразу в корень. Далее начинается извлечение элементов из дерева. Извлекается значение из корня. Данное значение является первым элементом в результирующем массиве. Извлеченное значение помещается в отсортированный массив и заменяется в дереве на специальный символ.

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

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

* 100,

* 134

114 * 134

138 114 * 243 146 134

138 182 238 114 * 115 268 243 215 146 134

Рис. 2.6.2. 1 00, 114,

114

114 134

114 115 134

138 114 115 243 146 134

138 182 238 114 * 115 268 243 215 146 134

Рис. 2.6.3. 100, 114, 115

115

115 134

138 115 134

138 * 115 243 146 134

138 182 238 * * 115 268 243 215 146 134

Рис. 2.6.4.

100, 114, 115, 134, 138,146, 182, 215, 238, 243, 268

268

  1. *

* 268 *

* * 268 * * *

* * * * 268 * * * * * *

Рис. 2.6.5.

1 00, 114, 115, 134, 138,146, 182, 215, 238, 243, 268

*

* *

* * *

* * * * * *

* * * * * * * * * * *

В результате получим отсортированный массив

100, 114, 115, 134, 138,146, 182, 215, 238, 243, 268

Теперь найдем заданное число:

115 > 110, 115 > 114, 115=115.

Выполнено 11 операции сравнения.