Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
12 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
598.90 kB
Просмотров:
87
Скачиваний:
2
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Бинарный поиск](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img0.jpg)
Содержание слайда: Бинарный поиск
№2 слайд![ОПРЕДЕЛЕНИЕ](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img1.jpg)
Содержание слайда: ОПРЕДЕЛЕНИЕ
№3 слайд![Алгоритм Проверить, что](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img2.jpg)
Содержание слайда: Алгоритм
Проверить, что искомое значение не выходит за границы области поиска;
Найти середину области поиска;
Если искомое значение больше, чем значение в середине области, то повторяем поиск в области от середины до наибольшего значения области, иначе – от наименьшего до середины.
№4 слайд![](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img3.jpg)
№5 слайд![ПРИМЕР РЕАЛИЗАЦИИ int binary](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img4.jpg)
Содержание слайда: ПРИМЕР РЕАЛИЗАЦИИ
int binary_search (int value, int *array, int *first, int *last){
if ((value>*(last))||(value<*first))
return -1;
else if (last-first==1)
{
if (*first==value) return array-first;
else if (*(last)==value) return last-array;
else return -1;
}
else {
unsigned int mid = (last - first) / 2;
if (value > *(first + mid))
return binary_search(value, array, first + mid, last);
else
return binary_search(value, array, first, last - mid);
}
}
№6 слайд![ТИПИЧНЫЕ ОШИБКИ first last](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img5.jpg)
Содержание слайда: ТИПИЧНЫЕ ОШИБКИ
first+last вызывает выход за границы диапазона используемого типа данных. Решается использованием указателей или итераторов.
Ошибки на единицу.
Ищется не первое/последнее значение.
№7 слайд![STL bool binary search](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img6.jpg)
Содержание слайда: STL
bool binary_search – возвращает истину, если искомый элемент встречается в массиве и ложь в противном случае.
binary_search(array_100,array_100+100,63);
№8 слайд![СКОРОСТЬ РАБОТЫ](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img7.jpg)
Содержание слайда: СКОРОСТЬ РАБОТЫ
№9 слайд![Замечания Значение mid не](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img8.jpg)
Содержание слайда: Замечания
Значение mid – не обязательно середина массива. Оно определяется как граница раздела двух областей поиска – той, в которой будет продолжен поиск, и той, которая будет отброшена.
Большинство задач на бинарный поиск подразумевают именно правильное определение mid.
Единого алгоритма для данного алгоритма не существует. В каждом случае mid определяется только на основе анализа задачи.
№10 слайд![Замечания Бинарный поиск](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img9.jpg)
Содержание слайда: Замечания
Бинарный поиск работает с любыми структурами данных, которые расположены в памяти последовательно и отсортированы.
В случае использования таких структур данных, как стек, очередь, дерево и т.д. бинарный поиск не работает.
№11 слайд![Замечания Бинарный поиск](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img10.jpg)
Содержание слайда: Замечания
Бинарный поиск можно использовать для монотонных функций.
Функция монотонна в том случае, если она всё время не убывает или не возрастает.
Примеры – линейная, кубическая, логарифм, экспонента.
№12 слайд![Литература Кнут, Искусство](/documents_6/239f7fd6a79847de487bebaa7d16d87c/img11.jpg)
Содержание слайда: Литература
Кнут, «Искусство программирования», том 3;
Лафоре, «Структуры данных и алгоритмы Java» (тут хватит и знаний C++).
Вирт Н. Алгоритмы + структуры данных = программы.