UML EditorОткрыть редактор

Задачи / Обработка массивов / Минимальный элемент массива и его номер

Минимальный элемент массива и его номер: блок-схема и алгоритм

Удобнее хранить не само значение минимума, а его номер k: значение всегда можно получить как a[k]. Сначала k = 1, затем каждый элемент сравниваем с a[k].

Блок-схема: Минимальный элемент массива и его номер

Алгоритм по шагам

  1. Ввести n и массив a.
  2. Присвоить k = 1.
  3. Для i от 2 до n: если a[i] < a[k], то k = i.
  4. Вывести a[k] и k.

Открыть блок-схему в редакторе

Пример работы

Входa = [6, 3, 8, 1, 5]
Шаг 1k = 1 (a[1] = 6)
Шаг 2i = 2: 3 < 6 → k = 2
Шаг 3i = 3: 8 < 3? нет
Шаг 4i = 4: 1 < 3 → k = 4
Шаг 5i = 5: 5 < 1? нет
Результат1 4

Решение на Python

n = int(input())
a = list(map(int, input().split()))
k = 0
for i in range(1, n):
    if a[i] < a[k]:
        k = i
print(a[k], k + 1)  # номер с 1, как в задачах

Решение на Pascal

var a: array[1..100] of integer;
    n, i, k: integer;
begin
  readln(n);
  for i := 1 to n do read(a[i]);
  k := 1;
  for i := 2 to n do
    if a[i] < a[k] then
      k := i;
  writeln(a[k], ' ', k);
end.

Код блок-схемы

Схема выше нарисована по этому псевдокоду. Скопируйте его в редактор блок-схем или нажмите «Открыть блок-схему в редакторе».

блок-схема: Минимум массива и его номер
начало
ввод n, массив a[1..n]
k = 1
для i от 2 до n
    если a[i] < a[k]
        k = i
вывод a[k], k
конец

Сложность

O(n), память O(1).

Частые ошибки

  • Хранить только значение минимума, а потом искать его номер вторым проходом — лишняя работа.
  • В Python выводить индекс без + 1, когда в задаче нумерация с единицы.
  • При нескольких одинаковых минимумах строгое < даёт первый, а ≤ — последний из них.

Похожие задачи

Обозначения фигур и синтаксис кода блок-схем — в справочнике: блок-схема по ГОСТ 19.701. Все задачи.