Скачать презентацию Сортировка по множеству ключей Пусть рассмотренный телефонный справочник Скачать презентацию Сортировка по множеству ключей Пусть рассмотренный телефонный справочник

6.2 Индексация.pptx

  • Количество слайдов: 6

Сортировка по множеству ключей Пусть рассмотренный телефонный справочник хранится в виде базы данных в Сортировка по множеству ключей Пусть рассмотренный телефонный справочник хранится в виде базы данных в памяти и мы хотим использовать его для того, чтобы: 1) Быстро искать записи по известной фамилии; 2) Быстро искать запись по известному номеру телефона; Для совмещения сортировок по фамилии и телефону рассмотри прием:

Индексация данных Рассмотрим суть индексации на массиве целых чисел: 1 2 3 4 5 Индексация данных Рассмотрим суть индексации на массиве целых чисел: 1 2 3 4 5 6 7 -физические номера 8 А: 5 7 3 4 2 6 1 8 В: 7 5 3 4 1 6 2 8 1 2 3 4 5 6 7 8 -логические номера -элементы массива В- индексный массив А[B[i]] –распечатка элементов массива С: 8 2 6 1 4 3 5 7 -номера элементов массива А по убыванию А[С[i]] –распечатка элементов массива

Чтобы упорядочить А[ ] по возрастанию, мы построим массив В [ ], в него Чтобы упорядочить А[ ] по возрастанию, мы построим массив В [ ], в него записали номера элементов массива по возрастанию и обращение к элементам массива А происходит через В. В [ ]-индексный массив При доступе к массиву А по логическим номерам, мы работаем с ним как с упорядоченным, в то время как сами элементы физически не переставляем. Печать: DO(i=0, …n) печать (А [ В[ i ] ] )

Построение индекса массива Построение выполняется на базе любой сортировки, сначала в массив В [ Построение индекса массива Построение выполняется на базе любой сортировки, сначала в массив В [ ] записывается физические номера элементов массива А [ ], произведем любую сортировку при условии: 1) В операции сравнения элементы массива А индексируются через В; 2) Пересылки делаются только в массиве В; Запишем алгоритм построения индексного массива на примере пузырьковой сортировки:

Алгоритм на псевдокоде (на примере пузырьковой сортировки) B: =(1, 2, …, n) DO (i=1, Алгоритм на псевдокоде (на примере пузырьковой сортировки) 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) Появляется возможность построения нескольких различных индексов, которые можно использовать по мере Преимущества индексации 1) Появляется возможность построения нескольких различных индексов, которые можно использовать по мере необходимости. 2) Исключается копирование больших массивов данных. 3) Возможность фильтрации данных. Фильтрация - при работе с базами данных используются не все элементы, а только те, которые отвечают условию фильтра. Пусть мы хотим при построении индексного массива включить только четные элементы по возрастанию. D: 5 4 6 8 - только четные, по возрастанию