Пошуки мініму|му#5328

Пошуки мініму|му (Розбір)

Задачу можна розв’язати як з використанням масиву, так і без нього. Мінімальне значення будемо зберігати у змінній . Спочатку їй можна присвоїти або значення, що дорівнює "нескінченності" (наприклад, число, більше або рівне максимально можливому значенню серед вхідних даних — таким числом може бути 10^5), або просто перше з введених чисел.

Далі послідовно обробляємо всі вхідні дані. Якщо поточне число менше поточного значення змінної , оновлюємо її, присвоюючи нове значення.

Приклад

Розглянемо, як змінюється значення змінної в процесі обробки вхідної послідовності.

Реалізація алгоритму

Читаємо кількість заданих чисел .

scanf("%d",&n);

Ініціалізуємо змінну великим числом — в ньому буде зберігатися шуканий мінімум.

min = 100000;

Послідовно обробляємо всі чисел.

for(i = 0; i < n; i++)
{

Читаємо чергове значення .

  scanf("%d",&val);

Якщо це значення менше поточного значення змінної , оновлюємо мінімум.

  if (val < min) min = val;
}

Виводимо знайдений мінімум.

printf("%d\n",min);

Реалізація алгоритму — ініціалізація мінімуму

Читаємо кількість заданих чисел .

scanf("%d",&n);

Читаємо перше число і присвоюємо його змінній — тепер вона зберігає поточне мінімальне значення.

scanf("%d",&min);

Потім читаємо залишені n - 1 число.

for(i = 1; i < n; i++)
{

Читаємо чергове значення .

  scanf("%d",&val);

Якщо це значення менше поточного значення змінної , оновлюємо мінімум.

  if (val < min) min = val;
}

Виводимо шуканий мінімум.

printf("%d\n",min);

Реалізація алгоритму – STL

Читаємо вхідні дані.

scanf("%d", &n);
v.resize(n);
for (i = 0; i < n; i++)
  scanf("%d", &v[i]);

Вираховуємо і виводимо найменший елемент.

res = *min_element(v.begin(), v.end());
printf("%d\n", res);

Java реалізація — вирахування мінімуму на льоту

import java.util.*;

public class Main 
{
  public static void main(String[] args) 
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    int min = Integer.MAX_VALUE;

    for(int i = 0; i < n; i++)
    {
      int val = con.nextInt();
      if (val < min) min = val;
    }

    System.out.println(min);
    con.close();
  }
}

Java реалізація — використання масиву

import java.util.*;

public class Main
{
  public static void main(String[] args)
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    int m[] = new int[n];
    
    // Read data
    for(int i = 0; i < m.length; i++)
      m[i] = con.nextInt();

    // Find minimum in array
    int min = Integer.MAX_VALUE;
    for(int i = 0; i < m.length; i++)
      if (m[i] < min) min = m[i];
    
    // Print the minimum
    System.out.println(min);
    con.close();
  }
}

Python реалізація з індексами елементів списку

import sys

Читаємо вхідні дані.

n = int(input())
m = list(map(int,input().split()))

Ініціалізуємо змінну великим числом — в ній буде зберігатися шуканий мінімум.

min = sys.maxsize

Послідовно обробляємо елементи списку . У процесі перебору оновлюємо змінну , зберігаючи в ній найменший елемент списку.

for i in range(n):
  if m[i] < min: min = m[i]

Виводимо відповідь.

print(min)

Python реалізація

import sys

Читаємо вхідні дані.

n = int(input())
m = list(map(int,input().split()))

Ініціалізуємо змінну великим числом — в ній буде зберігатися шуканий мінімум.

min = sys.maxsize

Послідовно обробляємо елементи списку . У процесі перебору оновлюємо змінну , зберігаючи в ній найменший елемент списку.

for v in m:
  if v < min: min = v

Виводимо відповідь.

print(min)

Python реалізація — функція min

Читаємо вхідні дані.

n = int(input())
m = list(map(int,input().split()))

Функція min повертає мінімальний елемент у списку. Виводимо відповідь.

print(min(m))