Масив в структура от данни (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 Тип Минимален размер (байтове)
"б" знак със знак Int 1
„Б“ неподписан char Int 1
"ти" Py_UNICODE Unicode знак 2
"ч" подписано кратко Int 2
"H" неподписано кратко Int 2
"Аз" подписан вътр Int 2
"Аз" неподписан int Int 2
'l' подписано дълго Int 4
„L“ неподписано дълго Int 4
"F" поплавък поплавък 4
'д' удвои поплавък 8

Как да получите достъп до конкретна стойност на масив?

Можете да получите достъп до всеки елемент от масива, използвайки неговия индекс.

Синтаксис:

arrayName[indexNum]

Пример:

balance[1]

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

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

Тук, достъпихме втората стойност на масива, използвайки индекс 1. Изходът е 200, което е втората стойност на масива balance.

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

Изход:

200

Array Operaции в Python

- Python Модулът array предоставя отделни функции за операции с масиви. Това са деструктивни методи, което означава, че модификацията се запазва в променливата на масива.

Поставете

Тази операция вмъква един или повече елементи в масив в началото, края или по даден индекс. Очаква два аргумента: индекс и стойност.

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

Array Operaции в C++

За разлика от Pythonв C++ Трябва сами да програмирате логиката за операции по вмъкване, изтриване, търсене, актуализиране и преместване.

Поставете

Логиката на вмъкване е: преминаване през елементите на масива, преместването им към по-голям индекс и добавянето на нов елемент на дадения индекс. Примерът по-долу има пет елемента и вмъква 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]);
   }
}

Array 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 Array

Актуализиране на елемент по неговия индекс.

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 Array

Изведете всички елементи на масива, като го обходите.

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 Списъкът може да съдържа елементи от различни типове данни, докато масив (от модула array) съдържа елементи от един тип данни. Масивите са по-ефективни по отношение на паметта за големи набори от числови данни.

Петте основни операции са вмъкване (добавяне на елемент), изтриване (премахване на елемент), търсене (намиране на елемент по стойност), актуализиране (промяна на стойност в индекс) и преминаване (обхождане на всеки елемент).

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

Непрекъснатото съхранение позволява на програмата да изчисли адреса на всеки елемент мигновено от базовия адрес плюс индекса, умножен по размера на елемента. Това е, което осигурява на масивите бърз и произволен достъп за постоянно време.

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

Масивите са основата на векторите, матриците и тензорите, използвани в изкуствения интелект. Библиотеки като NumPy и TensorFlow съхраняват данни за обучение и тегла на моделите като многомерни масиви за бързи числени изчисления.

Да. Асистентите за кодиране с изкуствен интелект откриват грешки в индексите „отклонение по единица“ и „извън границите“, предлагат корекции и обясняват защо даден индекс е надвишил дължината на масива.ping начинаещите бързо разрешават често срещани грешки в масивите.

Обобщете тази публикация с: