🗊 Презентация Двоичный поиск в упорядоченном массиве

Нажмите для полного просмотра!
Двоичный поиск в упорядоченном массиве, слайд №1 Двоичный поиск в упорядоченном массиве, слайд №2 Двоичный поиск в упорядоченном массиве, слайд №3 Двоичный поиск в упорядоченном массиве, слайд №4 Двоичный поиск в упорядоченном массиве, слайд №5 Двоичный поиск в упорядоченном массиве, слайд №6 Двоичный поиск в упорядоченном массиве, слайд №7 Двоичный поиск в упорядоченном массиве, слайд №8 Двоичный поиск в упорядоченном массиве, слайд №9 Двоичный поиск в упорядоченном массиве, слайд №10 Двоичный поиск в упорядоченном массиве, слайд №11 Двоичный поиск в упорядоченном массиве, слайд №12 Двоичный поиск в упорядоченном массиве, слайд №13 Двоичный поиск в упорядоченном массиве, слайд №14 Двоичный поиск в упорядоченном массиве, слайд №15 Двоичный поиск в упорядоченном массиве, слайд №16 Двоичный поиск в упорядоченном массиве, слайд №17 Двоичный поиск в упорядоченном массиве, слайд №18 Двоичный поиск в упорядоченном массиве, слайд №19 Двоичный поиск в упорядоченном массиве, слайд №20 Двоичный поиск в упорядоченном массиве, слайд №21 Двоичный поиск в упорядоченном массиве, слайд №22 Двоичный поиск в упорядоченном массиве, слайд №23 Двоичный поиск в упорядоченном массиве, слайд №24 Двоичный поиск в упорядоченном массиве, слайд №25 Двоичный поиск в упорядоченном массиве, слайд №26 Двоичный поиск в упорядоченном массиве, слайд №27 Двоичный поиск в упорядоченном массиве, слайд №28 Двоичный поиск в упорядоченном массиве, слайд №29 Двоичный поиск в упорядоченном массиве, слайд №30

Содержание

Вы можете ознакомиться и скачать презентацию на тему Двоичный поиск в упорядоченном массиве. Доклад-сообщение содержит 30 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


Двоичный поиск в упорядоченном массиве Пусть дан массив А = (a1, a2, … , an ), упорядоченный по возрастанию, т.е. a1 ≤ a2 ≤ … ≤ an . Найти: 1)...
Описание слайда:
Двоичный поиск в упорядоченном массиве Пусть дан массив А = (a1, a2, … , an ), упорядоченный по возрастанию, т.е. a1 ≤ a2 ≤ … ≤ an . Найти: 1) Элемент с ключом Х; 2) Все элементы с ключом Х.

Слайд 2


Если массив не упорядочен, то единственный способ поиска – перебор, трудоемкость О(n). Если массив не упорядочен, то единственный способ поиска –...
Описание слайда:
Если массив не упорядочен, то единственный способ поиска – перебор, трудоемкость О(n). Если массив не упорядочен, то единственный способ поиска – перебор, трудоемкость О(n). В случае быстрого двоичного поиска трудоемкость О().

Слайд 3


Идея двоичного поиска: Возьмем средний элемент упорядоченного массива и сравним с ключом поиска «Х». Возможны варианты: 1) am = Х элемент найден 2)...
Описание слайда:
Идея двоичного поиска: Возьмем средний элемент упорядоченного массива и сравним с ключом поиска «Х». Возможны варианты: 1) am = Х элемент найден 2) am < Х продолжаем поиск в правой половине массива 3) am > Х продолжаем поиск в левой половине массива Каким образом?

Слайд 4


Алгоритм на псевдокоде (первая версия) Обозначим L, R – правая и левая границы рабочей части массива, Найден – логическая переменная, в которой будем...
Описание слайда:
Алгоритм на псевдокоде (первая версия) Обозначим L, R – правая и левая границы рабочей части массива, Найден – логическая переменная, в которой будем отмечать факт успешного завершения поиска. L: = 1, R: = n, Найден: = нет DO ( L ≤ R ) m: = ⌊(L+R)/2⌋ IF (am=X) Найден: =да OD FI IF (am < X) L: = m+1 ELSE R: = m-1 FI OD

Слайд 5


1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 а б б б в г д е ж з и к Х=б L=1, R=12 1 2 3 4 5 а б б б в L=1, R=5 Недостатки первой версии...
Описание слайда:
1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 а б б б в г д е ж з и к Х=б L=1, R=12 1 2 3 4 5 а б б б в L=1, R=5 Недостатки первой версии алгоритма: 1) на каждой итерации цикла два сравнения, 2) находит первый попавшийся элемент из нескольких с заданным ключом.

Слайд 6


Рассмотрим вторую версию алгоритма, Рассмотрим вторую версию алгоритма, в которой уменьшим количество сравнений путем исключения из алгоритма...
Описание слайда:
Рассмотрим вторую версию алгоритма, Рассмотрим вторую версию алгоритма, в которой уменьшим количество сравнений путем исключения из алгоритма проверки на равенство.

Слайд 7


Алгоритм на псевдокоде (вторая версия) L: = 1, R: = n DO ( L
Описание слайда:
Алгоритм на псевдокоде (вторая версия) L: = 1, R: = n DO ( L

Слайд 8


1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 а б б б в г д е ж з и к Х=б L=1, R=12 1 2 3 4 5 6 а б б б в г L=1, R=6 1 2 3 а б б L=1, R=3 1 2...
Описание слайда:
1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 а б б б в г д е ж з и к Х=б L=1, R=12 1 2 3 4 5 6 а б б б в г L=1, R=6 1 2 3 а б б L=1, R=3 1 2 а б L=1, R=2 2 б L=2, R=2 Преимущества второй версии алгоритма: 1) на каждой итерации цикла одно сравнение, 2) находит самый левый элемент среди тех, которые удовлетворяют ключу.

Слайд 9


Трудоемкость двоичного поиска Сначала определим максимальное количество итераций (k). Рассмотрим худший случай, когда 1) часть массива aL , … , aR...
Описание слайда:
Трудоемкость двоичного поиска Сначала определим максимальное количество итераций (k). Рассмотрим худший случай, когда 1) часть массива aL , … , aR содержит нечетное количество элементов 2) в начале каждой итерации слева элементов на один больше 3) на каждом шаге выбирается левая часть массива.

Слайд 10


Трудоемкость двоичного поиска Номер итерации Наибольшее количество элементов 0 n - нечетное 1 = 2 = 3 = … … k-1 = 2
Описание слайда:
Трудоемкость двоичного поиска Номер итерации Наибольшее количество элементов 0 n - нечетное 1 = 2 = 3 = … … k-1 = 2

Слайд 11


2 2 2 < n k-1 < k < +1 k - количество итераций С +1 Трудоемкость двоичного поиска: Т = О()
Описание слайда:
2 2 2 < n k-1 < k < +1 k - количество итераций С +1 Трудоемкость двоичного поиска: Т = О()

Слайд 12


Графики трудоемкости двоичного поиска
Описание слайда:
Графики трудоемкости двоичного поиска

Слайд 13


Сортировка данных со сложной структурой Дан массив абонентов А: Иванов Петров Абрамов 223322 345767 667891 Struct abonent { char name[10]; long...
Описание слайда:
Сортировка данных со сложной структурой Дан массив абонентов А: Иванов Петров Абрамов 223322 345767 667891 Struct abonent { char name[10]; long phone; } A[n]; Чтобы отсортировать такой массив структур, нужно определить отношение порядка его элементов (> < =).

Слайд 14


Сортировка данных со сложной структурой Пример. Struct abonent { char name[10]; long phone; } A[n]; Попытка сортировки: DO ( i = 1, 2, …, n-1 ) DO (...
Описание слайда:
Сортировка данных со сложной структурой Пример. Struct abonent { char name[10]; long phone; } A[n]; Попытка сортировки: DO ( i = 1, 2, …, n-1 ) DO ( j = n, n-1, …, i+1) IF ( Aj < Aj-1 ) Aj ↔ Aj-1 FI OD OD Эта запись не будет верной, т.к. компилятор не знает как сравнивать элементы типа структура, т.к. они не являются встроенными элементами языка.

Слайд 15


Чтобы реализовать операцию сравнения для структур, необходимо вспомнить, что любая операция отношения есть булева функция двух аргументов. Чтобы...
Описание слайда:
Чтобы реализовать операцию сравнения для структур, необходимо вспомнить, что любая операция отношения есть булева функция двух аргументов. Чтобы реализовать операцию сравнения для структур, необходимо вспомнить, что любая операция отношения есть булева функция двух аргументов. X

Слайд 16


Логическая функция Less (меньше) Логическая функция Less (меньше) При сортировке по имени абонента: int less ( struct abonent X, struct abonent Y) {...
Описание слайда:
Логическая функция Less (меньше) Логическая функция Less (меньше) При сортировке по имени абонента: int less ( struct abonent X, struct abonent Y) { if ( X.name

Слайд 17


Наполовину пуст? Наполовину полон?
Описание слайда:
Наполовину пуст? Наполовину полон?

Слайд 18


При сортировке по сложному ключу так же легко определить функцию less. При сортировке по сложному ключу так же легко определить функцию less. Для...
Описание слайда:
При сортировке по сложному ключу так же легко определить функцию less. При сортировке по сложному ключу так же легко определить функцию less. Для сортировки по фамилии абонента и (дополнительно) по номеру телефона: int less ( struct abonent X, struct abonent Y) { if ( X.name < Y.name) return 1; else if ( X.name > Y.name) return 0; else if ( X.phone < Y.phone) return 1; else return 0; }

Слайд 19


Тогда в алгоритмах сортировок вместо оператора сравнения используем вызов функции less. Тогда в алгоритмах сортировок вместо оператора сравнения...
Описание слайда:
Тогда в алгоритмах сортировок вместо оператора сравнения используем вызов функции less. Тогда в алгоритмах сортировок вместо оператора сравнения используем вызов функции less. Например, в пузырьковой сортировке: DO ( i = 1, 2, …, n-1) DO ( j = n, n-1, …, i+1) IF ( less ( Aj , Aj-1 ) ) Aj ↔ Aj-1 FI OD OD

Слайд 20


Вывод: Вывод: Если структура сортируемых данных не соответствует простым (встроенным) типам языка, то операции отношения необходимо переопределить с...
Описание слайда:
Вывод: Вывод: Если структура сортируемых данных не соответствует простым (встроенным) типам языка, то операции отношения необходимо переопределить с помощью соответствующих булевых функций. Аналогичное переопределение операций сравнений требуется и для организации поиска!

Слайд 21


Преимущества: Преимущества: 1) Операции отношения могут быть определены различными способами в зависимости от ключа сортировки и условия упорядочения...
Описание слайда:
Преимущества: Преимущества: 1) Операции отношения могут быть определены различными способами в зависимости от ключа сортировки и условия упорядочения данных. 2) Изменение направления упорядочения массива легко достигается с помощью изменения знака в операции отношения на противоположный. Операции пересылки не требуют переопределения, т.к. выполняются путем побайтового копирования.

Слайд 22


Двоичный поиск в упорядоченном массиве, слайд №22
Описание слайда:

Слайд 23


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

Слайд 24


Индексация данных Рассмотрим суть индексации на массиве целых чисел: 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...
Описание слайда:
Индексация данных Рассмотрим суть индексации на массиве целых чисел: 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] ] – обращение к элементу массива А через индекс С.

Слайд 25


Чтобы упорядочить массив А (по возрастанию), Чтобы упорядочить массив А (по возрастанию), мы построили индексный массив В, в него записали номера...
Описание слайда:
Чтобы упорядочить массив А (по возрастанию), Чтобы упорядочить массив А (по возрастанию), мы построили индексный массив В, в него записали номера элементов массива А (по возрастанию элементов) и обращаемся к элементам массива А через индекс В. При доступе к массиву А через индекс мы работаем с ним как с упорядоченным (например, можем производить быстрый двоичный поиск), в то время как сами элементы физически не переставляются.

Слайд 26


Пример. Вывод элементов массива (по возрастанию): Пример. Вывод элементов массива (по возрастанию): DO ( i = 1, …, n) вывод ( А [ В[i] ] ) OD Пример....
Описание слайда:
Пример. Вывод элементов массива (по возрастанию): Пример. Вывод элементов массива (по возрастанию): DO ( i = 1, …, n) вывод ( А [ В[i] ] ) OD Пример. Двоичный поиск (вторая версия): L: = 1, R: = n DO ( L

Слайд 27


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

Слайд 28


Построение индексного массива Алгоритм на псевдокоде (на примере пузырьковой сортировки) B := (1, 2, …, n) DO ( i = 1, 2, …, n-1) DO ( j = n, n-1, …,...
Описание слайда:
Построение индексного массива Алгоритм на псевдокоде (на примере пузырьковой сортировки) B := (1, 2, …, n) DO ( i = 1, 2, …, n-1) DO ( j = n, n-1, …, i+1) IF ( a[ bj ] < a[ bj-1 ]) bj↔bj-1 FI OD OD

Слайд 29


Преимущества индексации 1) Появляется возможность построения нескольких различных индексов, которые можно использовать по мере необходимости. 2)...
Описание слайда:
Преимущества индексации 1) Появляется возможность построения нескольких различных индексов, которые можно использовать по мере необходимости. 2) Исключается копирование больших массивов данных. 3) Возможность фильтрации данных.

Слайд 30


Преимущества индексации Определение. Фильтрация – использование при работе только тех элементов, которые отвечают некоторым условиям. Совокупность...
Описание слайда:
Преимущества индексации Определение. Фильтрация – использование при работе только тех элементов, которые отвечают некоторым условиям. Совокупность условий называется фильтром. Пример. Из массива А выбираем только четные элементы по возрастанию. 1 2 3 4 5 6 7 8 А : 5 7 3 4 2 6 1 8 D : 5 4 6 8 - только четные, по возрастанию



Похожие презентации
Mypresentation.ru
Загрузить презентацию