- Главная
- Математика
- Алгоритмы линейного поиска. Тема 1
Содержание
- 2. Линейный поиск Дано: массив А с n элементами. Выяснить: присутствует ли в массиве А значение х.
- 3. Процедура линейного поиска Процедура Linear-Search(A,n,x) Вход: • A – массив; • n – количество элементов массива
- 4. Улучшенный линейный поиск Прекращаем поиск, как только он находит в массиве значение x. Процедура Better-Linear-Search(A,n,x) Вход
- 5. Поиск с ограничителем Цель – избежать двойной проверки при каждой итерации цикла. Для этого поместим искомое
- 7. Скачать презентацию
Линейный поиск
Дано: массив А с n элементами.
Выяснить: присутствует ли в
Линейный поиск
Дано: массив А с n элементами.
Выяснить: присутствует ли в
Алгоритм линейного поиска: мы начинаем с начала массива (первого его элемента), поочередно проверяя все его элементы (А[1] затем A[2], затем A[3] и так далее до А[n]) и записывая место, где мы находим x (если мы вообще находим его).
Процедура линейного поиска
Процедура Linear-Search(A,n,x)
Вход:
• A – массив;
• n
Процедура линейного поиска
Процедура Linear-Search(A,n,x)
Вход:
• A – массив;
• n
• x – искомое значение.
Выход: значение переменной answer – либо индекс i, для которого A[i] = x, либо специальное значение not-found, которое может представлять собой любой некорректный индекс массива, например, произвольное отрицательное значение.
Шаги процедуры:
1. Установить значение answer равным not-found.
2. Для каждого индекса i, пробегающего поочередно значения от 0 до n-1:
А. Если A[i] = x, установить значение answer равным i.
3. В качестве выходного вернуть значение answer.
Улучшенный линейный поиск
Прекращаем поиск, как только он находит в массиве значение
Улучшенный линейный поиск
Прекращаем поиск, как только он находит в массиве значение
Процедура Better-Linear-Search(A,n,x)
Вход и выход: те же, что и в Linear-Search.
Шаги процедуры:
1. Для i = 0 до n-1:
А. Если A[i] = х, вернуть значение i в качестве выхода процедуры.
2. В противном случае вернуть в качестве выходного значение not-found.
Поиск с ограничителем
Цель – избежать двойной проверки при каждой итерации цикла.
Поиск с ограничителем
Цель – избежать двойной проверки при каждой итерации цикла.
Процедура Sentinel-Linear-Search(A,n,x)
Вход и выход: те же, что и в Linear-Search.
Шаги процедуры:
1. Сохранить А[n-1] в переменной last и поместить х в А[n-1].
2. Установить i равным 0.
3. Пока А[i] ≠ x, увеличивать i на 1.
4. Восстановить А[n-1] из переменной last.
5. Если i < n-1 или A[n-1] = x, вернуть значение i в качестве выхода процедуры.
6. В противном случае вернуть в качестве возвращаемого значения not-found.