Массив в структуре данных - объяснение, функция и примеры
Опубликовано: 2021-06-21Структуры данных оказались важной частью почти всех языков программирования, которые широко применяются в большинстве компьютерных программ. Именно благодаря структурам данных программы могут эффективно управлять данными и получать к ним доступ, поскольку доступ к отдельным данным и их хранение по отдельности — это трудоемкий процесс. Алгоритмы разработаны специально для создания определенных операций, необходимых в структуре данных. Таким образом, структуры данных и алгоритмы вместе составляют основу сложных приложений и программ.
В этой статье мы сосредоточимся на типе структуры данных, т.е. на массиве.
Массив — это тип структуры данных, в которой элементы или данные хранятся в смежных местах. Всякий раз, когда у пользователя есть набор данных с одним и тем же типом данных, структура данных массива является вариантом для организации этих данных. Размер массива зависит от размера данных. Прежде чем элементы будут сохранены в массиве, необходимо определить размер массива, чтобы он эффективно включал все элементы. Каждому элементу, хранящемуся в массиве, присвоено значение индекса, которое помогает определить местоположение этого элемента в массиве. Первый элемент массива имеет значение индекса, равное нулю.
Важные термины, связанные со структурой данных массива :
- Элемент : Элемент представляет каждый объект или элемент, хранящийся в структуре данных.
- Индекс : Индекс представляет расположение элемента в массиве. Он имеет числовое значение.
Размер массива меняется в зависимости от языка программирования. В зависимости от размера массив может быть двух типов: статический и динамический.
Оглавление
1. Статический массив:
Эти типы массивов имеют свои размеры, предопределенные во время их создания. Из-за этого статические массивы также известны как фиксированные массивы или массивы фиксированной длины. Массив может быть определен двумя способами. Либо элементы массива могут быть определены при создании массива, либо размер массива может быть определен при создании массива. В последнем случае элементы указывать не требуется. Значения по умолчанию могут быть выделены в неинициализированный массив или значения, оставшиеся в памяти от предыдущих выделений.
Массив не может сжиматься или расширяться после определения размера. Поскольку память выделяется во время объявления массива, только компилятор может уничтожить массив. Добавление элемента невозможно, так как пользователь не уверен, есть ли свободная память для выделения следующего элемента.
В таблице ниже показан пример массивов, используемых в разных языках программирования.
Язык программирования | Содержимое определенного массива | Определенный размер массива без содержимого |
С++ | интервальные отметки [] = {10, 20, 30}; | целые знаки[3]; |
С# | int[] метки = {10, 20, 30}; | int[] отмечает = = новый int[3]; |
Джава | int[] метки = {10, 20, 30}; | int[] отмечает = = новый int[3]; |
JavaScript | var отметок = [10, 20, 30]; | varmarks = новый массив (3); |
питон | оценки = [10, 20, 30] | оценки = [Нет] * 3 |
Быстрый | переменные значения: [Int] = [10, 20, 30] | знаки var: [Int] = [Int] (повторение: 0, количество: 3) |
2. Динамический массив
Как следует из названия, массив является динамическим, что означает, что элементы могут быть добавлены или удалены во время выполнения. По сравнению со статическими массивами, длина которых фиксирована, динамические массивы не имеют фиксированной длины или размера массива. Стандартные библиотечные функции или встроенные функции доступны в большинстве языков программирования для создания динамических массивов и управления ими.
В таблице ниже показано создание массива на разных языках программирования.
Язык программирования | Сорт | Добавление элемента | Удаление элемента |
С++ | #include <список> станд::список | вставлять | стереть |
С# | System.Collections.Generic.List | Добавлять | Удалять |
Джава | java.util.ArrayList | Добавить | Удалить |
JavaScript | Множество | толкать, стыковать | поп, сращивание |
питон | Список | добавить | Удалить |
Быстрый | Множество | добавить | Удалить |
Представление массива
Представление массива зависит от его реализации на разных языках программирования. Массив, являющийся важной частью структуры данных Python , был показан на примере языка программирования Python.
В python массивы структур данных обрабатываются с помощью ключевого слова array . Всякий раз, когда используется массив ключевых слов, пользователь должен хранить элементы одного и того же типа данных.
Источник
Рисунок 1: Пример массива
Согласно рисунку 1, иллюстрация массива показывает, что
- Размер массива равен 10, что означает, что в массиве можно хранить 9 элементов.
- Значение индекса было упомянуто выше массива, который начинается со значения 0.
- Элементы, хранящиеся в массиве, могут быть любого типа данных, и доступ к элементу можно получить через значение их индекса.
Другая иллюстрация показана на рисунке 2, где описан синтаксис Python и C++.
Источник
Рис. 2. Объявление массива с использованием Python и C++ (
Свойства массива
Структура данных массива имеет несколько свойств:
- Элементы, хранящиеся в массиве, имеют одинаковые типы данных и одинаковый размер, т.е. тип данных int будет иметь размер 4 байта.
- Непрерывная область памяти используется для хранения элементов структуры данных. Наименьшая память выделяется первому элементу массива.
- Значения индекса используются для поиска местоположения элементов в массиве. Индекс начинается с 0 и всегда меньше общего количества элементов в массиве.
- Произвольный доступ к элементам массива возможен благодаря доступному значению индекса. Адрес элемента можно вычислить через базовый адрес, добавленный к значению смещения.
- Концепция массива остается одинаковой во всех языках программирования. Различаются только инициализация и объявление.
- Имя массива, элементы и тип данных — это три части, общие для всех языков.
Создание массива
Ниже показано создание массива в структуре данных Python .
- Модуль массива в структуре данных python можно импортировать для создания массива.
- array(data_type, value_list ) — это синтаксис, с помощью которого можно создать массив в структуре данных Python .
- Тип данных должен быть действительным целым числом или числом с плавающей запятой. Строки не разрешены в python.
На рис. 2 показано, как создать массив в Python. Пример кода, показывающий, как модуль массива импортируется в python.
массив импорта
отметки = массив.массив('i', [100,200,300])
печать (отметки)
Объявление массива может быть выполнено через
имя_массива = массив.массив(код типа для типа данных [массив,элементы])
Это можно представить на рисунке 3.
Источник
Рисунок 3: Объявление массива в python
Важные термины, используемые при создании массива:
- Идентификатор: имя, которое должно быть указано как имя для переменных.
- Модуль: в python необходимо импортировать специальный модуль, называемый массивом.
- Метод: это особый метод инициализации массива в python. Два аргумента приняты, код типа и элементы.
- Код типа: Тип данных должен быть указан с доступным кодом типа.
- Элементы: элементы массива должны быть указаны в квадратных скобках, например [200,400,100.]
Доступные коды типов показаны ниже
Операции с массивами
При наличии структур данных и алгоритмов несколько операций могут выполняться в структуре данных любого типа. Структура данных массива может иметь такие операции, как добавление , удаление, присоединение и обновление элемента.
Операции, которые можно выполнять в массиве структуры данных Python, перечислены ниже.
1. Добавление элемента в массив
- Встроенная функция insert() используется для добавления элементов в массив.
- Используемый синтаксис : arrayName.insert(индекс, значение)
- В массив можно добавить один или несколько элементов с помощью функции insert().
- Элементы могут быть добавлены в начало массива или в любую определенную позицию с помощью функции Input: append().
массив импорта
отметки = массив.массив('i', [200 500 600])
отметки.insert(1, 150)
Вывод: массив('i', [200,150,500,600])
Ниже показан пример с кодом, взятым из
Вывод кода:
Источник
2. Удаление элемента в массиве
- Элемент можно удалить из массива через его значение.
- Используемый синтаксис: arrayName.remove(value)
- Пример: удаление значения 250 после его добавления в массив с элементами 100, 300, 200, 500 и 800.
Вход:
массив импорта
отметки = массив.массив('i', [100,300,200,500,800])
отметки.insert(1, 250)
печать (отметки)
отметки.удалить(250)
Вывод: массив('i', [100 300 200 500 800])
Пример кода взят из
Источник
Вывод кода:
3. Доступ к элементам массива
- оператор индекса [ ] используется для доступа к элементам массива.
- Номер индекса используется для доступа к любому элементу массива .
Ниже показан пример кода, взятого из
Вывод кода:
Источник
4. Поиск элемента в массиве.
- Встроенный метод index() используется для поиска элемента в массиве.
- Значение индекса искомого элемента возвращается функцией.
- Пример: поиск элемента 250 в массиве элементов 100, 250, 300, 200, 500 и 800.
Вход: массив импорта
отметки = массив.массив('I', [100,250,300,200,500,800])
печать (знаки.индекс (250))
Выход: 1
Код для поиска элемента в массиве
Вывод кода
Источник
3. Обновление элементов в массиве
- Процесс обновления элемента аналогичен методу вставки с той лишь разницей, что при обновлении существующее значение будет заменено по заданному индексу.
- Новое значение переназначается индексу для обновления элемента в массиве.
- Пример: обновление элемента 250 на 350 в массиве элементов 100, 250, 300, 200, 500 и 800.
Вход: массив импорта
отметки = массив.массив('i', [100,250,300,200,500,800])
оценки[1] = 350
Выход:
массив('i', [100 350 300 200 500 800])
Код, показывающий обновление элемента, показан ниже.
Вывод кода
Источник
Преимущества массива
- Возможно хранение нескольких значений в одной переменной вместо создания отдельных переменных для каждого элемента.
- Несколько значений можно легко и быстро обрабатывать с помощью массивов.
- Элементы массива можно сортировать и искать более быстрым способом.
Заключение
В статье обсуждался особый тип структуры данных, т. е. массив и связанные с ним операции. Используя базовые концепции, можно создавать более сложные программы, нацеленные на решение реальных проблем. Если вы хотите укрепить основы своих концепций структуры данных в python, вы можете обратиться к следующему курсу Executive PG Program in Data Science от upGrad. Курс сертифицирован IIIT-Bangalore и содержит более 14 инструментов и языков программирования, чтобы подготовить вас к переходу в отрасль. Он специально разработан для профессионалов начального уровня в возрастной группе от 21 до 45 лет. Так что не останавливайтесь на достигнутом и овладейте языком и его применением в мире машинного обучения с помощью курса upGrad. Если у вас есть какие-либо вопросы, наша команда поддержки будет там, чтобы помочь вам.
Массив — это мощная линейная структура данных. Тем не менее, он имеет некоторые преимущества, а также недостатки, которые упомянуты ниже: Ниже показано различие между массивом и списком. Структура данных массива имеет множество применений в реальной жизни, а также используется в качестве основы для реализации других определяемых пользователем структур данных. Вот некоторые из основных применений массивов:Каковы преимущества и недостатки массива?
Преимущества
1. В массиве к элементам можно легко получить доступ по их порядковым номерам.
2. Массивы можно использовать для хранения нескольких похожих сущностей.
3. Операция поиска довольно удобна. Это можно сделать за время O(n) и O(log n) в отсортированном массиве, где n — количество элементов.
Недостатки
1. Поскольку память в массиве выделяется статически, размер массива изменить нельзя.
2. Он однороден, т. е. в массиве могут храниться только элементы, имеющие сходный тип данных. Различать массив и список?
Множество -
1. Структура данных массива однородна, т. е. в массиве могут храниться только элементы со схожими типами данных.
2. Перед использованием массива необходимо импортировать модули.
3. Арифметические операции применимы напрямую.
4. Предпочтительно для больших данных.
4. Гораздо компактнее и меньше потребляет памяти.
Список -
1. Список неоднороден и может хранить в себе элементы нескольких типов данных.
2. Нет необходимости импортировать модули, так как они встроены в Python.
3. Арифметические операции не могут выполняться напрямую.
4. Предпочтительно для небольших данных.
5. Больше потребление памяти. Опишите основные области применения массивов?
1. Массивы используются для реализации и выполнения матричных операций. Матрицы в основном используются в геологических изысканиях и научно-исследовательских экспериментах.
2. Несколько пользовательских структур данных реализованы с использованием структур данных массива. К ним относятся стек, очередь, кучи, хэш-таблицы и списки.
3. Программы используют массивы для регулирования потока управления вместо использования традиционных операторов elif, которые сравнительно длинны.
4. Алгоритмы, написанные для процессов планирования ЦП, также используют структуру данных массива для повышения производительности ЦП.
5. Графы используют списки смежности как одну из своих реализаций. Векторы (применение массива) используются для создания этих списков смежности.