Масив у структурі даних (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. Метод: Модуль масиву має метод для ініціалізації масиву, який приймає два аргументи — typecode та elements.
  4. Код типу: вкажіть тип даних, використовуючи доступні коди типів (див. таблицю нижче).
  5. Елементи: вкажіть елементи масиву в квадратних дужках, наприклад [130, 450, 103].

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

Введіть код C типу Python тип Мінімальний розмір (байти)
"b" підписаний знак Int 1
"B" беззнаковий знак Int 1
"ти" Py_UNICODE Символ Unicode 2
'h' підписаний короткий Int 2
"H" неподписаний короткий Int 2
'я' підписаний внутр Int 2
'Я' неподписаний int Int 2
'l' підписаний довго Int 4
'L' без підпису довгий Int 4
'f' плавати плавати 4
'd' подвійний плавати 8

Як отримати доступ до певного значення масиву?

Ви можете отримати доступ до будь-якого елемента масиву, використовуючи його індекс.

Синтаксис:

arrayName[indexNum]

приклад:

balance[1]

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

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

Тут ми отримали доступ до другого значення масиву, використовуючи індекс 1. Вихід дорівнює 200, що є другим значенням масиву balance.

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

вихід:

200

масив Operaв Python

Команда Python Модуль array надає окремі функції для операцій з масивами. Це деструктивні методи, тобто модифікація зберігається у змінній масиву.

Insert

Ця операція вставляє один або декілька елементів у масив на початку, в кінці або за будь-яким заданим індексом. Вона очікує два аргументи: індекс та значення.

arrayName.insert(index, value)

приклад: Щоб вставити нове значення одразу після індексу 1 (значення 200), посилайтеся на індекс 2 у методі вставки.

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])

Траверс

Ви можете пройти через a 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++ Ви повинні самостійно запрограмувати логіку для операцій вставки, видалення, пошуку, оновлення та переміщення.

Insert

Логіка вставки така: перебрати елементи масиву, змістити їх на більший індекс, а потім додати новий елемент за заданим індексом. У наведеному нижче прикладі є п'ять елементів, а число 150 вставляється одразу після значення 200.

#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] + " ");
        }
    }
}

Поширені запитання

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

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

П'ять основних операцій - це вставка (додавання елемента), видалення (видалення елемента), пошук (пошук елемента за значенням), оновлення (зміна значення в індексі) та переміщення (перегляд кожного елемента).

Доступ до елемента за індексом займає O(1) — постійний час — оскільки адреса пам'яті обчислюється безпосередньо з базової адреси та індексу. Вставка та видалення можуть займати O(n) через зсув.

Безперервне сховище дозволяє програмі миттєво обчислювати адресу будь-якого елемента, починаючи з базової адреси плюс індекс, помножений на розмір елемента. Саме це забезпечує швидкий та постійний довільний доступ до масивів.

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

Масиви є основою векторів, матриць та тензорів, що використовуються у штучному інтелекті. Бібліотеки, такі як NumPy та TensorFlow, зберігають навчальні дані та ваги моделей у вигляді багатовимірних масивів для швидких числових обчислень.

Так. Помічники кодування зі штучним інтелектом виявляють помилки індексу, що виходять за межі допустимих значень, пропонують виправлення та пояснюють, чому індекс перевищує довжину масиву.ping новачки швидко вирішують поширені помилки масивів.

Підсумуйте цей пост за допомогою: