Sobes.tech
Back to questions
Junior — Middle
71

Как оценивается эффективность поиска элементов внутри массива, и какие факторы влияют на его сложность?

Answer from AI

sobes.tech AI

Эффективность поиска элементов в массиве оценивается с помощью временной сложности алгоритма поиска.

  • Линейный поиск (Linear Search): перебор элементов по порядку. В худшем случае сложность — O(n), где n — количество элементов.
  • Бинарный поиск (Binary Search): применяется к отсортированным массивам. Сложность — O(log n).

Факторы, влияющие на сложность поиска:

  • Структура данных: массивы позволяют быстрый доступ по индексу, но для поиска без сортировки нужен перебор.
  • Отсортированность массива: бинарный поиск возможен только если массив отсортирован.
  • Размер массива: чем больше элементов, тем дольше поиск при линейном переборе.

Пример бинарного поиска на C#:

int BinarySearch(int[] arr, int target) {
    int left = 0, right = arr.Length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1; // элемент не найден
}