Все разделы
Выбрать школу

Школа. Увлечения. Большое будущее.

PROSCHOOLS · ОБРАЗОВАНИЕ РЯДОМ

Ваш город

Выберите город, чтобы находить образование и возможности рядом.

Как учитываем городКаталог и кнопки «Выбрать школу» покажут школы выбранного города.Онлайн-курсы, учебник, ГДЗ и задания к экзаменам доступны по всей России.

Популярные города

Будет выбран: Вся Россия

Учебные материалы останутся прежними.

Поиск по сайту

По всему сайтуШколы выбранного города — выше в результатах

С чего начнём?

↑ ↓ — выбрать результат · Enter — открыть · Esc — закрыть

Поиск элемента в массиве

💻 Информатика · 8 класс

Линейный поиск, поиск максимума и минимума, подсчёт элементов по условию в одномерном массиве.

Клавиатура в компьютерном классе
Иллюстрация к предмету «Информатика»Hmartil · Wikimedia Commons · CC BY-SA 4.0

Зачем искать элементы в массиве

Массив — это упорядоченный набор однотипных элементов, у каждого из которых есть свой номер, называемый индексом. По индексу можно обратиться к любому элементу напрямую. Очень часто в программе требуется найти в массиве элемент с нужным свойством: например, заданное значение, наибольший или наименьший элемент, либо подсчитать, сколько элементов удовлетворяют некоторому условию. Для всех этих задач применяют алгоритмы, основанные на переборе элементов в цикле.

Линейный поиск значения

Самый простой способ найти значение — линейный поиск. Элементы массива перебирают по очереди, от первого до последнего, и каждый сравнивают с искомым значением. Как только встретится совпадение, можно запомнить номер этого элемента в специальной переменной и при необходимости отметить, что значение найдено.

нашли := нет
нц для i от 1 до n
если A[i] = искомое то нашли := да; номер := i
кц

Если после перебора переменная нашли осталась равной «нет», значит, искомого значения в массиве нет вовсе. Линейный поиск всегда даёт верный ответ, потому что проверяет каждый элемент без исключения. Его применяют, когда элементы расположены в произвольном порядке.

Поиск наибольшего элемента

Чтобы найти максимум, за начальное значение принимают первый элемент массива. Затем проходят по остальным элементам и, встретив значение больше текущего максимума, обновляют его. После прохода переменная содержит наибольший элемент.

макс := A[1]
нц для i от 2 до n
если A[i] > макс то макс := A[i]
кц

Поиск наименьшего элемента устроен точно так же, только знак сравнения меняется на противоположный, а переменную называют минимумом. Важно, что за начальное значение и максимума, и минимума берут именно первый элемент массива, а затем сравнивают его с остальными по очереди.

Подсчёт элементов по условию

Чтобы сосчитать элементы с нужным свойством, заводят счётчик, изначально равный нулю, и увеличивают его на единицу всякий раз, когда очередной элемент удовлетворяет условию. Например, так можно сосчитать все положительные числа в массиве.

ЗадачаЧто готовим заранееЧто делаем в цикле
Поиск значенияфлаг «не найдено»сравниваем с искомым
Максимуммаксимум равен первомуобновляем, если больше
Минимумминимум равен первомуобновляем, если меньше
Подсчётсчётчик равен нулюувеличиваем по условию
Частая ошибка: искать максимум, начав со значения ноль. Если все элементы массива отрицательные, такой алгоритм даст неверный ответ. Поэтому начальное значение максимума берут равным первому элементу массива, а не нулю.

Кратко о главном

  • Массив — набор однотипных элементов с индексами.
  • Линейный поиск перебирает элементы по очереди.
  • Максимум и минимум начинают искать с первого элемента.
  • Для подсчёта по условию используют счётчик.
  • Все эти алгоритмы строятся на цикле перебора.