Скачать презентацию Поиск данных План занятия 1 Линейный поиск 2 Скачать презентацию Поиск данных План занятия 1 Линейный поиск 2

Поиск данных.ppt

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

Поиск данных План занятия 1. Линейный поиск. 2. Бинарный поиск. 3. Случайный поиск. 4. Поиск данных План занятия 1. Линейный поиск. 2. Бинарный поиск. 3. Случайный поиск. 4. Поиск элемента произвольного массива за линейное время. 5. Поиск второго минимального элемента в массиве.

Случайный поиск • Пусть необходимо найти k-й по порядку элемент в неупорядоченном массиве A. Случайный поиск • Пусть необходимо найти k-й по порядку элемент в неупорядоченном массиве A. • Будем использовать идею бинарного поиска следующим образом: 1. Выбирается случайным образом элемент с номером q. 2. Массив A разбивается на три части: элементы, меньшие A[q], равные A[q] и большие A[q]. 3. В зависимости от количества элементов в каждой части, выбирается одна из частей для дальнейшего поиска.

Поиск элемента массива за линейное время • Требуется уметь сортировать массив из 5 элементов Поиск элемента массива за линейное время • Требуется уметь сортировать массив из 5 элементов за 7 сравнений - Sort(N, A), где N – количество элементов в массиве A. • Идея алгоритма базируется на бинарном поиске.

 • Из отсортированных пятиэлементных массивов формируется массив из средних элементов – медиан (M). • Из отсортированных пятиэлементных массивов формируется массив из средних элементов – медиан (M). • В массиве M выбирается средний элемент m и относительно него исходный массив разбивается на три части, как в предыдущей схеме случайного поиска.

 • В части A на рис. выделены элементы, заведомо большие m, в части • В части A на рис. выделены элементы, заведомо большие m, в части B – меньшие m. • За счет однократного применения действий этой схемы, как минимум, четвертая часть элементов исходного массива исключается из дальнейшего поиска.

Поиск второго минимального элемента в массиве • Известно, что второй минимальный элемент в массиве Поиск второго минимального элемента в массиве • Известно, что второй минимальный элемент в массиве из N элементов можно найти за N+ log 2 N – 2 сравнений. • Пример, при N=8 это 9 сравнений. • Очевидно, что без поиска минимального элемента найти второй минимальный невозможно. • Поиск минимального элемента требует N– 1 сравнений. Осталось log 2 N – 1 сравнение.

 • Если искать по прежней схеме, исключив найденный элемент, то потребуется еще N– • Если искать по прежней схеме, исключив найденный элемент, то потребуется еще N– 2 сравнения, а в сумме 2∙N– 3 сравнения. • При этом мы как бы забываем то, что делали на первом шаге. • Вывод – нужно создавать некую дополнительную информацию на первом шаге и использовать её для поиска второго минимального элемента.

Но как это сделать? • Пусть N=8 • Массива А : 81, 34, 2, Но как это сделать? • Пусть N=8 • Массива А : 81, 34, 2, 90, 51, 45, 14, 31. • Схема поиска минимального элемента: Сравниваем соседние пары элементов, а затем сравниваем минимальные элементы пар и так далее.

 • Без круглых скобок – это обычный поиск минимума. • А сейчас обратимся • Без круглых скобок – это обычный поиск минимума. • А сейчас обратимся к записям в круглых скобках. • Рассмотрим, например, 2(34, 90). • Почему мы не включили 81? Причина в том, что этот элемент не может быть вторым минимальным элементом. Только, 34 и 90 кандидаты на это место.

 • Точно так же и 14(45, 31). Элемент 51 исключается из «цепочки» претендентов. • Точно так же и 14(45, 31). Элемент 51 исключается из «цепочки» претендентов. • Последнее 7 -е сравнение оставляет в этой «цепочке» 2(14, 34, 90) только три элемента, ибо 45 и 31 не могут претендовать на эту роль, 14 заведомо их меньше, а этот элемент включен в «цепочку» . • Итак, в списке 3 элемента, за 2 сравнения мы находим второй минимальный элемент, общее количество сравнений равно 9.

Задание • Постройте точно такую же схему для массива из 16 элементов. Через 15 Задание • Постройте точно такую же схему для массива из 16 элементов. Через 15 сравнений в последней «цепочке» окажется 4 элемента. За 3 сравнения мы найдем второй минимальный элемент. Итого, 18 сравнений.