Содержание
- 3. Идея двоичного поиска: Возьмем средний элемент упорядоченного массива и сравним с ключом поиска «Х». Возможны варианты:
- 4. Алгоритм на псевдокоде (первая версия) Обозначим L, R – правая и левая границы рабочей части массива,
- 5. 1 2 3 4 5 6 7 8 9 10 11 12 а б б б
- 6. Рассмотрим вторую версию алгоритма, в которой уменьшим количество сравнений путем исключения из алгоритма проверки на равенство.
- 7. L: = 1, R: = n DO ( L m: = ⌊(L+R)/2⌋ IF (am ELSE R:
- 8. 1 2 3 4 5 6 7 8 9 10 11 12 а б б б
- 9. Трудоемкость двоичного поиска Сначала определим максимальное количество итераций (k). Рассмотрим худший случай, когда 1) часть массива
- 10. Трудоемкость двоичного поиска
- 12. Графики трудоемкости двоичного поиска
- 13. Сортировка данных со сложной структурой Дан массив абонентов А: Иванов Петров Абрамов 223322 345767 667891 Struct
- 14. Сортировка данных со сложной структурой Пример. Struct abonent { char name[10]; long phone; } A[n]; Попытка
- 16. Логическая функция Less (меньше) При сортировке по имени абонента: int less ( struct abonent X, struct
- 17. Наполовину пуст? Наполовину полон? Программист считает, что стакан в два раза больше, чем нужно
- 18. При сортировке по сложному ключу так же легко определить функцию less. Для сортировки по фамилии абонента
- 19. Тогда в алгоритмах сортировок вместо оператора сравнения используем вызов функции less. Например, в пузырьковой сортировке: DO
- 20. Вывод: Если структура сортируемых данных не соответствует простым (встроенным) типам языка, то операции отношения необходимо переопределить
- 21. Преимущества: 1) Операции отношения могут быть определены различными способами в зависимости от ключа сортировки и условия
- 23. Сортировка по множеству ключей Пусть рассмотренный телефонный справочник хранится в виде базы данных в памяти компьютера
- 24. Индексация данных Рассмотрим суть индексации на массиве целых чисел: 1 2 3 4 5 6 7
- 25. Чтобы упорядочить массив А (по возрастанию), мы построили индексный массив В, в него записали номера элементов
- 26. Пример. Вывод элементов массива (по возрастанию): DO ( i = 1, …, n) вывод ( А
- 27. Построение индексного массива Построение индексного массива выполняется на базе любого алгоритма сортировки. *Вначале в массив В
- 28. Построение индексного массива Алгоритм на псевдокоде (на примере пузырьковой сортировки) B := (1, 2, …, n)
- 29. Преимущества индексации 1) Появляется возможность построения нескольких различных индексов, которые можно использовать по мере необходимости. 2)
- 31. Скачать презентацию