Разделы презентаций


Поиск информации

Содержание

Алгоритмы поиска информацииЛинейный поиск

Слайды и текст этой презентации

Слайд 1Поиск информации
Задача поиска:
где в заданной совокупности данных находится элемент, обладающий

заданным свойством?

Большинство задач поиска сводится к поиску в таблице элемента

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

Слайд 2Алгоритмы поиска информации
Линейный поиск

Алгоритмы поиска информацииЛинейный поиск

Слайд 3Пример:
Написать программу поиска элемента х в массиве из n элементов.

Значение элемента х вводится с клавиатуры.
Решение:
Дано:
Const n= 10;
Var a:

Array[1..n] of integer;
x: integer;

Пример:Написать программу поиска элемента х в массиве из n элементов. Значение элемента х вводится с клавиатуры.Решение:Дано: Const

Слайд 4В данном случае известно только значение разыскиваемого элемента, никакой дополнительной

информации о нем или о массиве, в котором его надо

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

For i:=1 to n do
if a[i] = x then k:=i;

В данном случае известно только значение разыскиваемого элемента, никакой дополнительной информации о нем или о массиве, в

Слайд 5Недостатки данного метода:
если значение х встречается в массиве несколько

раз, то найдено будет последнее из них;
после того, как

нужное значение уже найдено, массив просматривается до конца, т.е. всегда выполняется n сравнений.

Прервем просмотр сразу же после обнаружения заданного элемента!

Недостатки данного метода: если значение х встречается в массиве несколько раз, то найдено будет последнее из них;

Слайд 6Используем цикл с предусловием.
While (i

inc(i);
В результате:
либо будет найден искомый элемент, т.е. найдется такой

индекс i, что a[i] = x;
либо будет просмотрен весь массив, и искомый элемент не обнаружится.
Поскольку поиск заканчивается только в случае, когда i = n + 1 или когда искомый элемент найден, то из этого следует, что если в массиве есть несколько элементов, совпадающих с элементом х, то в результате работы программы будет найден первый из них, т.е. элемент с наименьшим индексом.
Используем цикл с предусловием.While (i

Слайд 7Задание
оформить программу и проследить ее работу в режиме

пошагового просмотра при различных значениях х;

модифицировать программу для поиска

элемента массива, равного х, с максимально возможным индексом.
Задание оформить программу и проследить ее работу в режиме пошагового просмотра при различных значениях х; модифицировать программу

Слайд 8Линейный поиск с использованием барьера
Недостатком нашей программы является то, что

в заголовке цикла записано достаточно сложное условие, которое проверяется перед

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

Для этого используем искусственный прием!
Линейный поиск с использованием барьераНедостатком нашей программы является то, что в заголовке цикла записано достаточно сложное условие,

Слайд 9В массиве на n + 1 место запишем искомый элемент

х, который будет являться барьерным. Тогда если в процессе работы

программы
a[n + 1] := x; i := 1;
While a[i] <> x do inc(i);
обнаружится такой индекс i, что a[i] = x, то элемент будет найден. Но если a[i] = x будет только при i = n + 1, то, значит, интересующего нас элемента в массиве нет.
В случае наличия в массиве нескольких элементов, удовлетворяющих заданному свойству, будет также найден элемент с наименьшим номером.
В массиве на n + 1 место запишем искомый элемент х, который будет являться барьерным. Тогда если

Слайд 10Задание
Изменить программу так, чтобы был найден элемент с максимально

возможным индексом.


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

Слайд 11Если никаких дополнительных сведений о массиве, в котором хранится массив

нет, то ускорить поиск нельзя.
Если же известна некоторая информация о

данных, среди которых ведется поиск, например, массив данных отсортирован, удается существенно сократить время поиска, применяя непоследовательные методы поиска.
Если никаких дополнительных сведений о массиве, в котором хранится массив нет, то ускорить поиск нельзя.Если же известна

Слайд 12Бинарный поиск
Иначе двоичный поиск или метод половинного

деления.

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

Слайд 13Задача
Дано целое число х и массив а[1..n], отсортированный в порядке

неубывания чисел, то есть для любого k: 1 ≤

k < n: a[k-1] ≤ a[k].
Найти такое i, что a[i] = x или сообщить, что элемента х в массиве нет.
ЗадачаДано целое число х и массив а[1..n], отсортированный в порядке неубывания чисел, то есть для любого k:

Слайд 14Идея бинарного метода
- проверить, является ли х средним элементом массива.

Если да, то ответ получен. Если нет, то возможны два

случая:
х меньше среднего элемента. Следовательно, после этого данный метод можно применить к левой половине массива.
х больше среднего элемента. Аналогично, теперь этот метод следует применить к правой части массива.
Идея бинарного метода- проверить, является ли х средним элементом массива. Если да, то ответ получен. Если нет,

Слайд 15Пример:
Массив а:
3 5 6 8 12 15 17

18 20 25
х = 6
Шаг 1.
Найдем номер среднего элемента:



Так как 6 < a[5]

3 5 6 8 12 15 17 18 20 25

Пример: Массив а: 3 5 6 8 12 15 17 18 20 25х = 6Шаг 1.Найдем номер

Слайд 16Шаг 2. Рассмотрим лишь первые 4 элемента массива. Индекс среднего

элемента:

Аналогично:

Шаг 3. Рассматриваем два элемента

A[3] = 6! Его номер – 3

Шаг 2. Рассмотрим лишь первые 4 элемента массива. Индекс среднего элемента:

Слайд 17В общем случае формула поиска значения среднего элемента m:
Где L

– индекс первого, а R – индекс последнего элемента рассматриваемой

части массива.
В общем случае формула поиска значения среднего элемента m:Где L – индекс первого, а R – индекс

Слайд 18Фрагмент программной реализации бинарного поиска:
Begin
L:= 1; R:= n;

{на первом шаге – весь массив}
f:=

false; {признак того, что х не найден}
while ( L<=R) and not f do
begin
m:= (L + R) div 2;
if a[m] = x then f:= true { элемент найден.
Поиск надо прекратить}
else if a[m] < x then L:= m + 1 {отбрасывается левая
часть}
else R:= m – 1 {отбрасывается правая часть}
end
End;
Фрагмент программной реализации бинарного поиска:Begin  L:= 1; R:= n;   {на первом шаге – весь

Слайд 19Бинарный поиск с использованием фиктивного «барьерного» элемента.


Begin
a[0]:=x;

L:= 1; R:= n;
Repeat
m:= (L + R) div 2;
if L > R then m:=0
else if a[m] < x then L:= m + 1
else R:= m - 1
until a[m]= x;
ans:= m;
End;

(Списать в тетрадь. Добавить комментарий)

Бинарный поиск с использованием фиктивного «барьерного» элемента.

Слайд 20Задание:
Использование идеи двоичного поиска позволяет значительно улучшить алгоритм сортировки массива

методом простого включения. Учитывая, что готовая последовательность, в которую надо

вставлять элемент, является упорядоченной, можно методом деления пополам определить позицию включения нового элемента в неё. Такой модифицированный алгоритм сортировки называется методом двоичного включения.
Написать программу, реализующую этот метод.
Задание:Использование идеи двоичного поиска позволяет значительно улучшить алгоритм сортировки массива методом простого включения. Учитывая, что готовая последовательность,

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика