Массивы в программировании: описание и наполнение данными
Массивы в программировании: описание и наполнение данными
Разбираемся на простых примерах, что такое массивы, зачем их использовать и какие операции с ними можно совершать.
Массив в программировании — это такая структура данных, в которой одинаковые элементы выстроены по порядку и доступны по номеру. Условно массивы можно представить как пронумерованный набор спичечных коробков, где в каждом коробке лежат однотипные спички, но в разном количестве. Суть в том, что массивы помогают удобно хранить и обрабатывать большие объёмы данных.
В виде массивов можно представить разные вещи из окружающего нас мира: например, разложенную по одинаковым контейнерам и выстроенную стройными рядами черешню на лотке у уличного продавца или список учеников в классном журнале.
Массив — это линейная структура, которая позволяет хранить однотипные данные в виде некоего списка, то есть последовательно, один за другим. Если программисту нужно одно число, он заводит переменную, а если десяток чисел и больше, то он заводит массив чисел.
Основная функция массива как структуры данных — содержать в себе данные и предоставлять к ним удобный и алгоритмизуемый доступ.
Выделяют три важные особенности массивов:
1. Они всегда состоят из одинаковых элементов. Этим массивы отличаются от других структур данных. Элементами конкретного массива могут стать числа, строки или даже другие массивы.
2. К любому элементу массива можно обратиться по его номеру, также его называют индексом. По индексу программист может быстро найти нужный элемент. Обычно индексация массивов начинается с 0. Предположим, что у нас есть массив с тремя элементами, — они будут иметь индексы 0, 1 и 2.
3. Длина массива задаётся в момент его создания.
Пример простого массива в JavaScript:
let numbers = [1, 2, 3, 4, 5];
Массив numbers содержит пять целых чисел. По индексу numbers[0] доступно значение 1, numbers[1] будет равно 2, и т. д.
Массивы — это довольно древняя структура данных, которая используется в большинстве популярных языков программирования. По сути, любая память компьютера представляет собой массив. Поэтому в основном, когда говорят о массивах, подразумевают низкоуровневую работу с памятью в виде удобной структуры данных.
Научиться находить элементы в массивах на продвинутом уровне, писать эффективный код и выбирать подходящие структуры под конкретную задачу поможет курс «Алгоритмы и структуры данных». Для успешного прохождения важно знать один из языков программирования и разбираться в базовой математике уровня старших классов. Понять, подходит ли вам курс, можно, пройдя бесплатный первый модуль.
Обычно программисты не создают массивы, а просто объявляют их, и они сразу готовы к работе: так устроена эта низкоуровневая структура данных. При объявлении массива компилятор в памяти компьютера размечает упорядоченными областями данные, которые соответствуют каждой ячейке массива.
Длина массивов задаётся заранее: создать можно только массив с конкретной длиной. Программист или задаёт эту длину в переменной, или создаёт её через конструкцию типа new. С этого момента массив сразу готов к работе, можно записывать в любую ячейку нужные значения.
Приведём простые примеры создания массивов в разных языках.
Как видим, в разных языках синтаксис может варьироваться, но логика остаётся единой.
Чтобы записать массив, нужно по конкретному индексу обратиться к ячейке и присвоить ей значение. Таким образом, наполнение массива данными заключается в том, что программист перебирает все ячейки и в каждую записывает нужное значение. Также можно скопировать данные из одного массива в другой — это тоже будет операцией наполнения данными, только произведённой не вручную, а с помощью особой функции.
Приведём простые примеры наполнения массивов данными в разных языках.
Сначала рассмотрим операции с массивами как с переменными:
● Создание. Рассмотрели этот процесс выше.
● Копирование. Используем […arr] в JavaScript, arr.copy () в Python.
● Удаление. Массив занимает место в памяти, и периодически его нужно очищать. В одних языках, например в Java, неиспользуемые массивы автоматически удаляет сборщик мусора. В других это приходится делать вручную.
Например, в Python используют метод pop () для удаления массива по индексу и remove () для удаления по значению. С помощью оператора del можно очистить весь массив.
Если рассматривать массив как структуру данных, с содержимым массива возможны следующие операции:
● Чтение — прочитать одну ячейку или блок ячеек.
● Запись — записать данные в одну ячейку или в несколько ячеек по диапазону.
● Изменение размера — можно добавлять ячейки в начало, конец и в середину массива или, наоборот, удалять их.
При работе с массивами важно учитывать следующие особенности:
● Индексация в большинстве языков начинается с 0 и увеличивается. Но в Python можно использовать отрицательные индексы, отсчитывая элементы с конца массива.
● Работа с массивами подразумевает высокую скорость и производительность. Это хорошая структура для высокопроизводительных, высоконагруженных алгоритмов. Это достигается за счёт того, что многие операции над массивами выполняются с помощью арифметики индексов и отрезков, а значит, очень быстро.
● Нужно помнить, что любое изменение размера массива — это довольно тяжёлая операция, которой стоит избегать. Даже если язык позволяет изменить массив, это подразумевает копирование, вставку и разрезание массива пополам. Сложность в том, что хорошо сделанные массивы на низком уровне занимают непрерывную часть памяти. Сразу после массива идут какие-то другие данные, перед ним тоже идут другие данные. Поэтому, чтобы увеличить размер, нужно стараться найти другую область памяти подходящего размера, а это может занять много времени.
● В массиве хранятся данные одинакового типа. Положить в массив разнородные данные будет значительно сложнее, поэтому обычно при такой необходимости просто заводят два массива. Например, если речь идёт о списке участников спортивного мероприятия, нужно создать массив всех возрастов людей и массив всех фамилий.
Совет эксперта
Читать также: