Array in datastructuur (Operaties)

⚡ Slimme samenvatting

Een array in een datastructuur slaat meerdere items van hetzelfde gegevenstype op aaneengesloten geheugenlocaties op, die elk bereikbaar zijn via een index. Deze tutorial legt het concept uit, waarom arrays belangrijk zijn en hoe je ze kunt maken en bewerken. Python, C++en Java met voorbeelden.

  • ???? Kerndefinitie: Een array bevat meerdere elementen van hetzelfde type in aaneengesloten geheugenruimte, die toegankelijk zijn via een index.
  • ⚡ Snelle toegang: Elk element wordt in constante tijd opgehaald met behulp van de index.
  • ️ Vijf Operabanden: Invoegen, verwijderen, zoeken, bijwerken en doorlopen van arrays: functies uit de array-toolkit.
  • 🌐 Meertalig: Python maakt gebruik van de array-module; C++ en Java Declareer arrays rechtstreeks met handmatige logica.
  • 🤖 Relevantie van AI: Arrays vormen de basis voor tensoren en matrices die de drijvende kracht zijn achter machine learning-berekeningen.

Array in datastructuur (Operaties)

Wat is array in gegevensstructuur?

An reeks Een array is een datastructuur voor het opslaan van meerdere gegevenselementen van hetzelfde gegevenstype. De elementen van een array worden toegewezen op aangrenzende geheugenlocaties, en deze locaties worden de array genoemd. geeft je de mogelijkheid van de array. Het totale aantal elementen in een array is gelijk aan het aantal elementen in de array. lengte.

Elk element wordt benaderd via zijn positie, en deze verwijzing wordt de genoemd. index or subscript.

Concept van matrix

Conceptdiagram van arrays

Conceptdiagram van arrays

Het bovenstaande diagram illustreert dat:

  1. Een array is een container met elementen.
  2. Elementen hebben een specifieke waarde en gegevenstype, zoals "ABC", WAAR of ONWAAR.
  3. Elk element heeft een eigen index, waarmee het kan worden benaderd.

Let op:

  • Elementen worden opgeslagen op aangrenzende geheugenlocaties.
  • Een index is altijd kleiner dan het totale aantal array-items.
  • Elke variabele die als array is gedeclareerd, kan meerdere waarden opslaan.
  • Vrijwel alle programmeertalen hanteren hetzelfde concept van arrays, maar verschillen in de manier waarop ze deze declareren en initialiseren.
  • Drie onderdelen blijven bij alle initialisaties hetzelfde: de arraynaam, de elementen en het gegevenstype van de elementen.

Het volgende diagram toont de syntaxis voor het declareren van een rij in Python en C++Dit toont aan dat het concept hetzelfde blijft, ook al verschilt de syntaxis enigszins tussen talen.

Begrijp de syntaxis van arrays

Begrijp de syntaxis van arrays

  • Arraynaam: Nodig voor gemakkelijke raadpleging van de verzameling elementen.
  • Data type: Nodig voor typecontrole en gegevensintegriteit.
  • elementen: de gegevenswaarden die in de array aanwezig zijn.

Waarom hebben we arrays nodig?

  • Arrays zijn ideaal voor het opslaan van meerdere waarden in één variabele.
  • Ze verwerken veel waarden gemakkelijk en snel.
  • Het sorteren en zoeken van waarden is eenvoudiger met arrays.

Een array maken in Python

In PythonArrays verschillen van lijsten: een lijst kan items van verschillende gegevenstypen bevatten, terwijl een array alleen items van hetzelfde gegevenstype kan bevatten. Python heeft een aparte module voor het verwerken van arrays, genaamd arraydie je eerst moet importeren voordat je hem kunt gebruiken.

Let op: De array moet reële getallen bevatten, zoals gehele getallen en drijvende-kommagetallen; tekenreeksen zijn niet toegestaan.

De volgende code maakt een integer-array aan in Python om rekeningsaldi op te slaan:

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

Manieren om een ​​array in te declareren Python

Je kunt een array declareren in Python bij het initialiseren met behulp van de volgende syntax:

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

Syntaxis van Array in Python

Syntaxis van Array in Python

  1. Identifier: Geef een naam op zoals je dat normaal gesproken voor variabelen doet.
  2. Module: Python Het bevat een speciale module genaamd "array" die je eerst moet importeren.
  3. Werkwijze: De array-module heeft een methode voor het initialiseren van de array, die twee argumenten accepteert: typecode en elements.
  4. Typcode: Geef het gegevenstype op met behulp van de beschikbare typecodes (zie de tabel hieronder).
  5. elementen: Geef de array-elementen tussen vierkante haken op, bijvoorbeeld [130, 450, 103].

De onderstaande tabel geeft een overzicht van de beschikbare typecodes voor de ondersteunde gegevenstypen.

Typ code C Type Python Type Minimale grootte (bytes)
'b' ondertekend char int 1
'B' Ongetekend char int 1
'U' Py_UNICODE Unicode-teken 2
'H' kort getekend int 2
'H' ongetekend kort int 2
'ik' aangemeld bij int 2
'IK' niet aangemeld int 2
'L' lang getekend int 4
'L' lang ongetekend int 4
'F' drijven drijven 4
'D' verdubbelen drijven 8

Hoe krijg ik toegang tot een specifieke waarde in een array?

Je kunt elk element in een array benaderen via de index ervan.

Syntax:

arrayName[indexNum]

Voorbeeld:

balance[1]

Toegang tot een array-element

Toegang tot een array-element

Hier hebben we de tweede waarde van de array benaderd met behulp van index 1. De uitvoer is 200, wat de tweede waarde van de balans-array is.

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

Output:

200

reeks Operain Python

De Python De array-module biedt aparte functies voor array-bewerkingen. Dit zijn destructieve methoden, wat betekent dat de wijziging wordt opgeslagen in de array-variabele.

Invoegen

Deze bewerking voegt een of meer elementen toe aan een array, aan het begin, het einde of op een willekeurige index. De bewerking vereist twee argumenten: index en waarde.

arrayName.insert(index, value)

Voorbeeld: Om een ​​nieuwe waarde direct na index 1 (de waarde 200) in te voegen, gebruik je index 2 in de invoegmethode.

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

Output:

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

Verwijdering

Deze bewerking verwijdert één element uit een array op basis van de waarde ervan en accepteert één argument. Na de uitvoering worden de elementen opnieuw gerangschikt en de indexen opnieuw toegewezen.

arrayName.remove(value)

Voorbeeld:

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

Output:

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

Zoeken

Deze bewerking zoekt naar een item op basis van de waarde en retourneert de index ervan. Het is een niet-destructieve methode, dus de waarden in de array worden niet gewijzigd.

arrayName.index(value)

Voorbeeld:

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

Output:

2

bijwerken

Bij het bijwerken wordt de bestaande waarde op een bepaalde index vervangen door een eenvoudige toewijzingsoperator.Python arrays hebben geen update() methode.)

arrayName[index] = value

Voorbeeld: Om 150 (op index 2) te vervangen door 145:

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

Output:

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

Doorkruisen

Je kunt een Python array met behulp van een lus:

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

Output:

300
200
100

Een array maken in C++

C++ is flexibeler dan Python Bij het maken van arrays kunt u arrays maken. C++ arrays Op drie manieren. De volgende code maakt een integer-array aan in C++ om rekeningsaldi op te slaan:

#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;
}

Manieren om een ​​array in te declareren C++

Je kunt een array op drie manieren declareren, afhankelijk van de vereisten van je programma.

Declaratie op basis van grootte:

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

Declaratie met alleen array-items:

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

Omschrijving op basis van maat en artikelen:

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

Hoe krijg ik toegang tot een specifieke arraywaarde in C++?

Toegang krijgen tot een arrayelement

Toegang krijgen tot een arrayelement

#include <iostream>
using namespace std;

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

Output:

200

reeks Operain C++

Anders Pythonin C++ Je moet zelf de logica programmeren voor invoeg-, verwijder-, zoek-, update- en doorloopbewerkingen.

Invoegen

De invoeglogica is als volgt: doorloop de elementen van de array, verschuif ze naar een hogere index en voeg vervolgens een nieuw element toe op de opgegeven index. Het onderstaande voorbeeld bevat vijf elementen en voegt 150 direct na de waarde 200 in.

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

reeks Operain Java

Laten we een programma maken in Java die de grootte en de waarden van de array-elementen van de gebruiker accepteert.

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

Een element in een wijzigen Java reeks

Een element bijwerken aan de hand van de index.

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

Toegangselementen in een Java reeks

Print alle elementen van de array door de array te doorlopen.

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

Veelgestelde vragen

Een array is een verzameling elementen van hetzelfde gegevenstype die op aaneengesloten geheugenlocaties zijn opgeslagen. Elk element wordt benaderd via een index, waardoor arrays efficiënt zijn voor het opslaan en ophalen van meerdere gerelateerde waarden.

A Python Een lijst kan items van verschillende gegevenstypen bevatten, terwijl een array (uit de array-module) items van één enkel gegevenstype bevat. Arrays zijn geheugenefficiënter voor grote sets numerieke gegevens.

De vijf basisbewerkingen zijn invoegen (een item toevoegen), verwijderen (een item verwijderen), zoeken (een item vinden op basis van waarde), bijwerken (een waarde op een index wijzigen) en doorlopen (elk element bezoeken).

Het benaderen van een element via een index is O(1) — constante tijd — omdat het geheugenadres direct wordt berekend op basis van het basisadres en de index. Invoegen en verwijderen kunnen O(n) zijn vanwege verschuivingen.

Door aaneengesloten opslag kan het programma het adres van elk element direct berekenen aan de hand van het basisadres plus de index maal de elementgrootte. Dit is wat arrays hun snelle, constante-tijd willekeurige toegang geeft.

Python Vereist de array-module en biedt ingebouwde bewerkingsmethoden. C++ en Java Arrays kunnen standaard worden gedeclareerd, maar je moet de logica voor invoegen, verwijderen en zoeken zelf programmeren. Java Arrays hebben ook een lengte-eigenschap.

Arrays vormen de basis van vectoren, matrices en tensors die in AI worden gebruikt. Bibliotheken zoals NumPy en TensorFlow slaan trainingsgegevens en modelgewichten op als multidimensionale arrays voor snelle numerieke berekeningen.

Ja. AI-codeerassistenten detecteren fouten zoals 'off-by-one' en 'out-of-bounds' indexen, stellen oplossingen voor en leggen uit waarom een ​​index de lengte van de array overschrijdt.ping Beginners lossen veelvoorkomende arrayfouten snel op.

Vat dit bericht samen met: