Similar presentations:
Методы поиска в массиве данных
1. Методы поиска в массиве данных
Восточно-Сибирский государственный технологическийуниверситет
Кафедра «Системы информатики»
Структуры и алгоритмы
обработки данных
Лекция по теме:
Методы поиска в массиве данных
Бильгаева Людмила Пурбоевна,
к.т.н., доцент
Улан-Удэ, 2010
2. 1. Последовательный поиск
Дана последовательность записейR1, R2, …, RN
с ключами k1, k2, …, kN.
Алгоритм предназначен для поиска
элемента последовательности с
заданным ключом k при N 1
3. Блок-схема алгоритма 1
i=1k = ki
i++
нет
да
i= N
нет
неудача
да
удача
4. 2. Быстрый последовательный поиск
В отличие от предыдущего алгоритмаздесь предполагается, что в конце
последовательности имеется
фиктивный элемент RN+1, равный
искомому ключу k
5. Блок-схема алгоритма 2
i=1kN+1 = k
i++
k = ki
нет
да
нет
i= N
да
удача
неудача
6. 3. Бинарный (дихотомический) поиск
С помощью данного алгоритмаразыскивается элемент
последовательности записей
R1, R2, …, RN,
ключи которых расположены в
возрастающем порядке:
k1< k2 < … < kN
7. Блок-схема алгоритма 3
l=1u=N
l= u
нет
да
неудача
i= (l+u)div2
да
k < ki
да
u = i-1
нет
k = ki
нет
l = i+1
да
удача
8. Пример бинарного поиска
Дана последовательность из 9 элементов:5, 4, 8, 1, 3, 7, 2, 9, 10
необходимо найти элемент, равный 7.
Решение: 1. Упорядочить по возрастанию
исходную последовательность.
1, 2, 3, 4, 5, 7, 8, 9, 10
2. Найти средний элемент путем деления
нацело общего числа элементов.
9div2=4, ki=4, k=7.
3. Поскольку k>ki, то дальнейший путь
поиска вычисляется следующим образом:
9. Продолжение примера
l = 4+1 = 54. Найти сумму l и u, l+u=5+9=14
5. Найти средний элемент, как
ki=14div2=7
6. В результате сравнения k=ki.
Таким образом, искомый элемент найден и
равен 7.