Массив в структуре данных (Operaции)

⚡ Умное резюме

В структурах данных массив хранит несколько элементов одного типа данных в смежных ячейках памяти, каждая из которых доступна по индексу. В этом руководстве объясняется концепция массивов, почему они важны, а также как создавать массивы и работать с ними. Python, C++ и Java с примерами.

  • 📦 Основное определение: Массив хранит несколько элементов одного типа в смежных областях памяти, доступ к которым осуществляется по индексу.
  • Быстрый доступ: Любой элемент извлекается за постоянное время с использованием его индекса.
  • 🇧🇷 Пять OperaЦИИ: Функции вставки, удаления, поиска, обновления и обхода массивов — все это входит в набор инструментов для работы с массивами.
  • 🌐 Межъязыковой: Python использует модуль массивов; C++ и Java Объявлять массивы можно напрямую, используя ручную логику.
  • 🤖 Актуальность ИИ: Массивы лежат в основе тензоров и матриц, которые обеспечивают вычисления в системах машинного обучения.

Массив в структуре данных (Operaции)

Что такое массив в структуре данных?

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

Доступ к каждому элементу осуществляется по его позиции, и эта ссылка называется позицией элемента. индекс or индекс.

Концепция массива

Концептуальная диаграмма массивов

Концептуальная диаграмма массивов

Приведенная выше диаграмма иллюстрирует следующее:

  1. Массив — это контейнер элементов.
  2. Элементы имеют определенное значение и тип данных, например, «ABC», TRUE или FALSE.
  3. Каждый элемент имеет свой индекс, который используется для доступа к нему.

Примечание:

  • Элементы хранятся в смежных ячейках памяти.
  • Индекс всегда меньше общего количества элементов массива.
  • Любая переменная, объявленная как массив, может хранить несколько значений.
  • Практически во всех языках программирования используется одна и та же концепция массивов, но различаются способы их объявления и инициализации.
  • Три элемента остаются общими для всех инициализаций: имя массива, элементы и тип данных элементов.

На следующей диаграмме показан синтаксис объявления массив в Python и C++, что демонстрирует, что концепция остается неизменной, несмотря на незначительные различия в синтаксисе между языками.

Понимание синтаксиса массивов

Понимание синтаксиса массивов

  • Имя массива: необходимо для удобного доступа к набору элементов.
  • Тип данных: необходимо для проверки типов и обеспечения целостности данных.
  • Элементы: Значения данных, присутствующие в массиве.

Зачем нам нужны массивы?

  • Массивы идеально подходят для хранения нескольких значений в одной переменной.
  • Они легко и быстро обрабатывают множество значений.
  • Сортировка и поиск значений с помощью массивов значительно упрощаются.

Создание массива в Python

In PythonМассивы отличаются от списков: список может содержать элементы разных типов данных, тогда как массив может содержать только элементы одного типа данных. Python имеет отдельный модуль для работы с массивами, который называется arrayкоторый необходимо импортировать перед использованием.

Примечание: Массив должен содержать действительные числа, такие как целые числа и числа с плавающей запятой; строки не допускаются.

Следующий код создает массив целых чисел в Python для хранения остатков на счетах:

import array
balance = array.array('i', [300, 200, 100])
print(balance)

Способы объявления массива в Python

Вы можете объявить массив в Python при инициализации с использованием следующего синтаксиса:

arrayName = array.array(typecode, [array_items])

Синтаксис массива в Python

Синтаксис массива в Python

  1. Идентификатор: Укажите имя так же, как вы обычно это делаете для переменных.
  2. Модули: Python имеет специальный модуль под названием «array», который необходимо сначала импортировать.
  3. Метод: Модуль array имеет метод для инициализации массива, принимающий два аргумента — typecode и elements.
  4. Типовой код: Укажите тип данных, используя доступные коды типов (см. таблицу ниже).
  5. Элементы: Укажите элементы массива в квадратных скобках, например, [130, 450, 103].

В таблице ниже перечислены доступные коды типов для поддерживаемых типов данных.

Код типа Тип C Python Тип Минимальный размер (байты)
'b' подписанный символ Int 1
'B' символ без знака Int 1
«И» Py_ЮНИКОД Unicode персонаж 2
'час' подписал короткий Int 2
'ЧАС' неподписанных краткий Int 2
'я' подписанный int Int 2
'Я' без знака int Int 2
«Л» подписан долго Int 4
'L' без знака долго Int 4
«Е» плавать плавать 4
'D' двойной плавать 8

Как получить доступ к определенному значению массива?

Доступ к любому элементу массива можно получить, используя его индекс.

Синтаксис:

arrayName[indexNum]

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

balance[1]

Доступ к элементу массива

Доступ к элементу массива

Здесь мы получили доступ ко второму значению массива, используя индекс 1. Результатом является 200, что соответствует второму значению массива баланса.

import array
balance = array.array('i', [300, 200, 100])
print(balance[1])

Выход:

200

массив Operaции в Python

Python Модуль `array` предоставляет отдельные функции для операций с массивами. Это деструктивные методы, то есть изменения сохраняются в переменной массива.

Вставить

Эта операция вставляет один или несколько элементов в массив в начало, конец или по любому заданному индексу. Она принимает два аргумента: индекс и значение.

arrayName.insert(index, value)

Пример: Чтобы вставить новое значение сразу после индекса 1 (значение 200), укажите индекс 2 в методе insert.

import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)

Выход:

array('i', [300, 200, 150, 100])

Удалить

Эта операция удаляет один элемент из массива по значению, принимая один аргумент. После её выполнения элементы переупорядочиваются, и индексы переназначаются.

arrayName.remove(value)

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)

Выход:

array('i', [300, 200, 100])

Поиск

Эта операция выполняет поиск элемента по значению и возвращает его индекс. Это неразрушающий метод, поэтому он не изменяет значения массива.

arrayName.index(value)

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))

Выход:

2

Обновление ПО

Обновление заменяет существующее значение по заданному индексу с помощью простого оператора присваивания.Python массивы не имеют update() метод.)

arrayName[index] = value

Пример: Чтобы заменить 150 (в позиции 2) на 145:

import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)

Выход:

array('i', [300, 200, 145, 100])

Пройдите

Вы можете пересечь Python Массив, созданный с помощью цикла:

import array
balance = array.array('i', [300, 200, 100])
for x in balance:
    print(x)

Выход:

300
200
100

Создание массива в C++

C++ более гибкий, чем Python При создании массивов вы можете создать C++ массивы тремя способами. Следующий код создает целочисленный массив в C++ для хранения остатков на счетах:

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  for (int i = 0; i < 3; i++)
    {
      cout << "value of i: " << balance[i] << endl;
    }
  return 0;
}

Способы объявления массива в C++

В зависимости от требований вашей программы, массив можно объявить тремя способами.

Указание по размеру:

dataType arrayName[arraySize];   // e.g. int balance[3];

Объявление, содержащее только элементы массива:

dataType arrayName[] = {array_items};   // e.g. int balance[] = { 300, 200, 100 };

Указание размера и типа изделия:

dataType arrayName[arraySize] = {array_items};   // e.g. int balance[3] = { 300, 200, 100 };

Как получить доступ к определенному значению массива в C++?

Доступ к элементу массива

Доступ к элементу массива

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  cout << balance[1];
  return 0;
}

Выход:

200

массив Operaции в C++

В отличие от Python и отправлять адресату C++ Для операций вставки, удаления, поиска, обновления и обхода вам необходимо самостоятельно запрограммировать логику.

Вставить

Логика вставки следующая: циклом перебираем элементы массива, сдвигаем их на больший индекс, затем добавляем новый элемент по заданному индексу. В приведенном ниже примере пять элементов, и сразу после значения 200 вставляется 150.

#include <iostream>
#include <stdio.h>

main() {
   int pos = 2;
   int size = 4;
   int balance[] = {300, 200, 100, 50, 0};

   printf("BEFORE INSERT:\n");
   for(int i = 0; i < 5; i++) {
      printf("%d\n", balance[i]);
   }

   /* SHIFT ITEMS TO A GREATER INDEX */
   for(int i = size; i >= pos; i--) {
       balance[i+1] = balance[i];
   }

   /* INSERT VALUE AT THE DESIRED INDEX */
   balance[pos] = 150;

   printf("AFTER INSERT:\n");
   for(int i = 0; i < 6; i++) {
      printf("%d\n", balance[i]);
   }
}

массив Operaции в Java

Давайте создадим программу в Java Этот модуль принимает от пользователя размер и значения элементов массива.

import java.util.Scanner;

public class AddElements {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the size of the array");
        int n = sc.nextInt();

        int arr[] = new int[n];

        System.out.println("Enter Elements in the array");
        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println("Elements in the array");
        for(int j = 0; j < n; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Изменить элемент в Java массив

Обновить элемент по его индексу.

import java.util.Scanner;

public class ModifyElement {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;
        Scanner sc = new Scanner(System.in);

        System.out.println("Array Elements Before modify");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.println("\nEnter the position to change");
        int pos = sc.nextInt();
        System.out.println("Enter the value");
        int val = sc.nextInt();

        arr[pos] = val;

        System.out.println("Array Elements After modify");
        for(int j = 0; j < length; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Доступ к элементам в Java массив

Вывести все элементы массива, пройдясь по нему.

public class AccessElements {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;

        System.out.println("Array Elements are:-");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

Часто задаваемые вопросы (FAQ)

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

A Python Список может содержать элементы разных типов данных, в то время как массив (из модуля array) содержит элементы одного типа данных. Массивы более эффективны с точки зрения использования памяти для больших наборов числовых данных.

Пять основных операций — это вставка (добавление элемента), удаление (удаление элемента), поиск (нахождение элемента по значению), обновление (изменение значения по индексу) и обход (обход каждого элемента).

Доступ к элементу по индексу занимает O(1) — постоянное время — поскольку адрес в памяти вычисляется непосредственно из базового адреса и индекса. Вставка и удаление могут занимать O(n) времени из-за сдвига.

Последовательное хранение данных позволяет программе мгновенно вычислять адрес любого элемента, начиная с базового адреса плюс индекс, умноженный на размер элемента. Именно это обеспечивает массивам быстрый произвольный доступ за постоянное время.

Python Для работы требуется модуль массива, и он предлагает встроенные методы управления. C++ и Java Массивы объявляются изначально, но вам потребуется самостоятельно написать код для вставки, удаления и поиска. Java Массивы также предоставляют свойство длины.

Массивы лежат в основе векторов, матриц и тензоров, используемых в искусственном интеллекте. Такие библиотеки, как NumPy и TensorFlow, хранят обучающие данные и веса моделей в виде многомерных массивов для быстрых численных вычислений.

Да. Искусственный интеллект, помогающий программистам, обнаруживает ошибки индексации, связанные с смещением на единицу и выходом за пределы массива, предлагает исправления и объясняет, почему индекс превысил длину массива.ping Начинающие быстро устраняют распространенные ошибки в массивах.

Подведем итог этой публикации следующим образом: