Алгоритм линейного поиска — это простой метод, используемый для поиска определенного элемента в списке. Этот алгоритм работает путем последовательной проверки каждого элемента в списке до тех пор, пока не будет найден нужный элемент или не будет пройден весь список.
Как это работает
- Начните с первого элемента в списке.
- Сравните текущий элемент с целевым значением.
- Если текущий элемент равен целевому значению, алгоритм завершает работу и возвращает позицию элемента.
- Если нет, продолжайте перебирать оставшиеся элементы в списке.
- Если весь список пройден, но целевой элемент не найден, алгоритм возвращает значение, указывающее, что он не найден.
Пример
Допустим, у нас есть список целых чисел, и мы хотим найти число 34 в списке.
Список: {12, 45, 67, 89, 34, 56, 23, 90}
- Начните с первого элемента: 12. Не нужное число.
- Перейти к следующему элементу: 45. Не нужное число.
- Продолжайте с оставшимися элементами: 67, 89, 34. Элемент 34 соответствует нужному номеру.
- Алгоритм завершается и возвращает позицию 34, то есть 4.
Пример кода на С++
#include <iostream>
#include <vector>
int linearSearch(const std::vector<int>& arr, int target) {
for(int i = 0; i < arr.size(); ++i) {
if(arr[i] == target) {
return i;
}
}
return -1;
}
int main() {
std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};
int target = 34;
int result = linearSearch(numbers, target);
if(result != -1) {
std::cout << "Element " << target << " found at position " << result << std::endl;
} else {
std::cout << "Element " << target << " not found in the array" << std::endl;
}
return 0;
}
В данном примере мы использовали linearSearch
функцию, чтобы найти число 34 в списке целых чисел. Результатом будет позиция 34 в списке(позиции начинаются с 0) или -1, если номер не найден.