Гид по технологиям

Как найти минимум и максимум в массиве — C++, Python, JavaScript

4 min read Программирование Обновлено 17 Apr 2026
Найти минимум и максимум в массиве — C++, Python, JS
Найти минимум и максимум в массиве — C++, Python, JS

Клавиатура и мышь с иконками языков программирования C, Python, JavaScript и C++

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

Что мы рассмотрим

  • Поиск минимума и максимума с помощью стандартных библиотек.
  • Реализация собственных функций для поиска минимума и максимума.
  • Когда стандартные функции не подходят и какие есть альтернативы.
  • Проверки, тесты и чеклист для подготовки к интервью.

Поиск минимума и максимума с помощью стандартных функций

Ниже приведены примеры для C++, Python и JavaScript, которые используют встроенные функции для поиска минимального и максимального элемента.

C++ — использование max_element() и min_element()

Функции max_element() и min_element() из возвращают итератор на максимальный/минимальный элемент.

// C++ program to find the maximum and minimum elements in an array  
// using max_element() and min_element() functions  
#include   
using namespace std;  
  
void printArrayElements(int arr[], int size)  
{  
 for(int i=0; i

Вывод выполнения программы:

Array 1:   
1 2 3 4 5 6   
Maximum element in the array: 6  
Minimum element in the array: 1  
Array 2:   
34 26 32 76 11 87   
Maximum element in the array: 87  
Minimum element in the array: 11  
Array 3:   
65 56 -90 345 52 76 23   
Maximum element in the array: 345  
Minimum element in the array: -90

Python — использование max() и min()

Функции max() и min() работают для любой итерируемой коллекции, в том числе списков (list).

# Python program to find the maximum and minimum elements in an array  
# using max() and min() functions  
  
def printListElements(arr, size):  
    for i in range(size):  
        print(arr[i], end=" ")  
    print()  
  
arr1 = [1, 2, 3, 4, 5, 6]  
size1 = len(arr1)  
print("Array 1:")  
printListElements(arr1, size1)  
print("Maximum element in the array:", max(arr1))  
print("Minimum element in the array:", min(arr1))  
  
arr2 = [34, 26, 32, 76, 11, 87]  
size2 = len(arr2)  
print("Array 2:")  
printListElements(arr2, size2)  
print("Maximum element in the array:", max(arr2))  
print("Minimum element in the array:", min(arr2))  
  
arr3 = [65, 56, -90, 345, 52, 76, 23]  
size3 = len(arr3)  
print("Array 3:")  
printListElements(arr3, size3)  
print("Maximum element in the array:", max(arr3))  
print("Minimum element in the array:", min(arr3))  

Вывод программы:

Array 1:   
1 2 3 4 5 6   
Maximum element in the array: 6  
Minimum element in the array: 1  
Array 2:   
34 26 32 76 11 87   
Maximum element in the array: 87  
Minimum element in the array: 11  
Array 3:   
65 56 -90 345 52 76 23   
Maximum element in the array: 345  
Minimum element in the array: -90

JavaScript — Math.max.apply() и Math.min.apply()

До появления spread-оператора было принято использовать Math.max.apply(Math, arr). Этот приём возвращает максимальное/минимальное значение из массива.

// JavaScript program to find the maximum and minimum elements in an array  
// using Math.max.apply() and Math.min.apply() functions  
function printArrayElements(arr, size) {  
 for(let i=0; i

Вывод программы:

Array 1:   
1 2 3 4 5 6   
Maximum element in the array: 6  
Minimum element in the array: 1  
Array 2:   
34 26 32 76 11 87   
Maximum element in the array: 87  
Minimum element in the array: 11  
Array 3:   
65 56 -90 345 52 76 23   
Maximum element in the array: 345  
Minimum element in the array: -90

Важно: в современных версиях JavaScript вместо apply рекомендуется использовать spread-оператор: Math.max(…arr).

Поиск минимума и максимума с помощью собственной функции

Если вы хотите контролировать проход по массиву или избежать дополнительных аллокаций, можно написать простую функцию, которая за один проход найдёт минимум и максимум.

C++ — собственные функции

// C++ program to find the maximum and minimum elements in an array  
#include   
using namespace std;  
  
// Function to find the maximum element in the array  
int findMaximumElement(int arr[], int size)  
{  
 int maxElement = arr[0];  
 for (int i=0; imaxElement)  
 {  
 maxElement = arr[i];  
 }  
 }  
 return maxElement;  
}  
  
// Function to find the minimum element in the array  
int findMinimumElement(int arr[], int size)  
{  
 int minElement = arr[0];  
 for (int i=0; i

Вывод примера идентичен показанным выше.

Python — собственные функции

# Python program to find the maximum and minimum elements in an array  
  
# Function to find the maximum element in the array  
def findMaximumElement(arr, size):  
    maxElement = arr[0]  
    for i in range(size):  
        if arr[i]>maxElement:  
        maxElement = arr[i]  
    return maxElement  
  
# Function to find the minimum element in the array  
def findMinimumElement(arr, size):  
    minElement = arr[0]  
    for i in range(size):  
        if arr[i]

JavaScript — собственные функции

// JavaScript program to find the maximum and minimum elements in an array  
  
// Function to find the maximum element in the array  
function findMaximumElement(arr, size) {  
 var maxElement = arr[0];  
 for (let i=0; imaxElement) {  
 maxElement = arr[i];  
 }  
 }  
 return maxElement;  
}  
  
// Function to find the minimum element in the array  
function findMinimumElement(arr, size) {  
 var minElement = arr[0];  
 for (let i=0; i

Когда стандартные функции не подходят — типичные случаи

  • Пустой массив: max()/max_element() вызовут ошибку или UB. Всегда проверяйте размер массива перед вызовом.
  • Несколько критериев сравнения: если элементы — структуры, нужно передать компаратор (C++) или ключ (Python: key=…).
  • Большие объёмы данных в ограниченной памяти: сортировка O(n log n) дорогостоящая; предпочтительна одномоментная O(n) операция.

Альтернативные подходы

  • Сортировка массива (std::sort, arr.sort()) и чтение первого/последнего элемента — просто, но дороже по времени: O(n log n).
  • Однопроходный алгоритм (как в разделе с собственными функциями) — оптимален по времени O(n) и памяти O(1).
  • Для потоковых данных используйте скользящий минимум/максимум или структуры данных (deque) в зависимости от окна.

Минимальная методология (cheat sheet)

  • Всегда проверяйте пустой массив.
  • Для числовых массивов используйте стандартные функции, чтобы уменьшить вероятность ошибки.
  • Для пользовательских типов передавайте компаратор/ключ.
  • В продакшн-коде добавьте unit-тесты на граничные случаи и отрицательные значения.

Набор тестов и критерии приёмки

  • Пустой массив -> функция возвращает ошибку/None/явное значение, не падение программы.
  • Одноэлементный массив -> min == max == элемент.
  • Все элементы одинаковы -> min == max == значение.
  • Наличие отрицательных и положительных чисел.
  • Большой массив (например, >10^5 элементов) — проверка производительности.

Чеклист для интервью и практики

Для студента/разработчика:

  • Поясните сложность выбранного алгоритма (временная и по памяти).
  • Назовите альтернативы и почему они хуже/лучше в конкретном контексте.
  • Напишите код, который корректно обрабатывает пустые массивы.

Для интервьюера:

  • Попросите оценить сложность и предложить тест-кейсы.
  • Попросите обработать особые случаи: пустой массив, нечисловые элементы, большие объёмы данных.

Краткая справка и модели мышления

  • Модель «один проход» (one-pass): просмотреть элементы подряд и поддерживать текущий минимум и максимум.
  • Модель «сортировка»: привести к упорядоченному виду и взять края — проще, но дороже.
  • Модель «редукция/агрегация»: использовать функции высшего порядка (reduce, accumulate) для декларативного стиля.

Резюме

  • Для большинства задач используйте стандартные функции (C++: max_element/min_element, Python: max/min, JS: Math.max/Math.min или spread).
  • Если важна скорость и память, реализуйте одномоментный проход и проверяйте граничные случаи.
  • Включите тесты: пустые массивы, одноэлементные, одинаковые элементы и большие входы.

Важно: всегда думайте о граничных условиях и типах данных, прежде чем выбирать решение.

Related: Как найти сумму всех элементов в массиве

Related: Введение в алгоритм сортировки слиянием

Related: Методы работы с массивами в JavaScript, которые стоит знать

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Бесплатные шрифты, похожие на платные: лучшие способы
Типография

Бесплатные шрифты, похожие на платные: лучшие способы

Проверить число циклов батареи в Windows
Техподдержка

Проверить число циклов батареи в Windows

Nessus на Kali Linux: установка и запуск
Инструменты безопасности

Nessus на Kali Linux: установка и запуск

Редактирование фото в Adobe Camera Raw
Фотография

Редактирование фото в Adobe Camera Raw

Настройка и использование ADB на Android
Инструкции

Настройка и использование ADB на Android

Найти пульт Apple TV через iPhone
Инструкции

Найти пульт Apple TV через iPhone