Содержание
- 2. Задача и результаты поиска в массиве Задача поиска: Задан массив A из n элементов и некоторое
- 3. Поиск одного элемента в неупорядоченном массиве int find_int(int *A, int n, int p) { for (int
- 4. Простой поиск одного элемента в упорядоченном массиве int find_sort_int(int *A, int n, int p) { for
- 5. Дихотомический поиск в упорядоченном массиве На каждом шаге алгоритма выделяется область поиска: A[b],A[b+1], ...,A[e] (начальные границы
- 6. Алгоритм дихотомического поиска int bin_search_first(int *A, int n, int p) { int b = 0, e
- 7. Алгоритм дихотомического поиска int bin_search_last(int *A, int n, int p) { int b = 0, e
- 8. Трудоемкость алгоритма Пусть 2m – 1 где k – размер области поиска. Вначале k = n.
- 9. Рекурсивная функция поиска int bin_search_rec(int *A, int p, int b, int e) { int c; if
- 10. Вызов рекурсивной функции поиска Функция bin_search_rec должна получать в качестве параметров не длину массива, а номера
- 11. Задача сортировки элементов массива Задача сортировки (упорядочения) массива по возрастанию: Задан произвольный массив A из n
- 12. Алгоритм обменной сортировки void exchange_sort(double *A, int n) { int i, j; double z; for (i
- 13. Алгоритм сортировки вставками Данный алгоритм очень похож на предыдущий. Разница заключается в замене обмена элементов сдвигом:
- 14. Трудоемкость алгоритмов обменной сортировки и сортировки вставками Общее количество выполнений внутреннего цикла в наихудшем случае: 1
- 15. Алгоритм сортировки выбором Среди m начальных элементов массива ищем максимальный и меняем его местами с последним
- 16. Трудоемкость алгоритма сортировки выбором Внутренний цикл выполняется m-1 раз, а m уменьшается во внешнем цикле от
- 17. Алгоритм пузырьковой сортировки Для m начальных элементов массива проводим сравнение всех пар соседних элементов A[i] и
- 18. Улучшенный алгоритм пузырька Алгоритм сортировки пузырьком можно улучшить. Если во внутреннем цикле не производится ни одного
- 19. Косвенная упорядоченность в массиве При косвенной сортировке исходный массив A не изменяется. Вместо этого формируется такой
- 20. Косвенная сортировка алгоритмом пузырька При косвенной сортировке необходимо сформировать целочисленный индексный массив Ind длины n. Вариант
- 21. Косвенная сортировка алгоритмом пузырька Вариант 2: динамический индексный массив Ind создается и формируется в функции, функция
- 22. Дихотомический поиск в косвенно упорядоченном массиве int bin_search_first(int *A, int *Ind, int n, int p) {
- 23. Слияние двух упорядоченных массивов void merge(double *A, int n, double *B, int m, double *C) {
- 24. Слияние двух массивов: вариант 2 void merge(double *A, int n, double *B, int m, double *C)
- 25. Рекурсивный алгоритм сортировки слиянием При каждом вызове рекурсивной функции параметры задают границы текущей области сортировки: b
- 26. Рекурсивный алгоритм сортировки слиянием void merge_rec(double *A, int b, int e, double *D) { int c
- 27. Слияние серий в сортировке слиянием int i = b, j = c+1, k; for (k =
- 28. Вызов рекурсивной функции Функция-обертка для рекурсивной функции merge_rec выделяет и освобождает память для динамического рабочего массива
- 29. Глубина рекурсии и трудоемкость Пусть размер n упорядочиваемого массива 2m – 1 тогда не более чем
- 31. Скачать презентацию