Array i datastruktur (Operationer)

โšก Smart opsummering

Array i datastruktur lagrer flere elementer af samme datatype pรฅ sammenhรฆngende hukommelsesplaceringer, der hver kan nรฅs via et indeks. Denne vejledning forklarer konceptet, hvorfor arrays er vigtige, og hvordan man opretter og arbejder med dem i Python, C++og Java med eksempler.

  • ๐Ÿ“ฆ Kernedefinition: Et array indeholder flere elementer af samme type i tilstรธdende hukommelse, som tilgรฅs via indeks.
  • โšก Hurtig adgang: Ethvert element hentes i konstant tid ved hjรฆlp af dets indeks.
  • ๐Ÿ› ๏ธ Fem Operationer: Indsรฆt, slet, sรธg, opdater og gennemgรฅ fra array-vรฆrktรธjssรฆttet.
  • ๐ŸŒ Tvรฆrsproglig: Python bruger array-modulet; C++ og Java deklarer arrays nativt med manuel logik.
  • ๐Ÿค– AI-relevans: Arrays understรธtter tensorer og matricer, der driver maskinlรฆringsberegninger.

Array i datastruktur (Operationer)

Hvad er Array i datastruktur?

An matrix er en datastruktur til lagring af mere end รฉt dataelement af en lignende datatype. Elementerne i et array allokeres pรฅ tilstรธdende hukommelsesplaceringer, og disse placeringer kaldes elementer af arrayet. Det samlede antal elementer i et array er dets lรฆngde.

Hvert element tilgรฅs via dets position, og denne reference kaldes indeks or sรฆnket.

Begrebet Array

Konceptdiagram over arrays

Konceptdiagram over arrays

Diagrammet ovenfor illustrerer, at:

  1. Et array er en beholder af elementer.
  2. Elementer har en specifik vรฆrdi og datatype, f.eks. "ABC", SAND eller FALSK.
  3. Hvert element har sit eget indeks, som bruges til at tilgรฅ det.

Bemรฆrk:

  • Elementer gemmes pรฅ sammenhรฆngende hukommelsesplaceringer.
  • Et indeks er altid mindre end det samlede antal array-elementer.
  • Enhver variabel, der er deklareret som et array, kan gemme flere vรฆrdier.
  • Nรฆsten alle sprog deler det samme koncept for arrays, men adskiller sig i, hvordan de deklarerer og initialiserer dem.
  • Tre dele forbliver fรฆlles pรฅ tvรฆrs af alle initialiseringer: arraynavnet, elementerne og elementernes datatype.

Fรธlgende diagram viser syntaksen for at deklarere en rรฆkke ind Python og C++, hvilket viser, at konceptet forbliver det samme, selvom syntaksen varierer en smule mellem sprog.

Forstรฅ syntaks af arrays

Forstรฅ syntaks af arrays

  • Array navn: nรธdvendigt for nem reference til samlingen af โ€‹โ€‹elementer.
  • Datatype: nรธdvendigt for typekontrol og dataintegritet.
  • elementer: de datavรฆrdier, der findes i arrayet.

Hvorfor har vi brug for arrays?

  • Arrays er ideelle til at gemme flere vรฆrdier i en enkelt variabel.
  • De bearbejder mange vรฆrdier nemt og hurtigt.
  • Det er nemmere at sortere og sรธge efter vรฆrdier med arrays.

Oprettelse af et array i Python

In Python, arrays adskiller sig fra lister: en liste kan indeholde elementer af forskellige datatyper, hvorimod et array kun kan indeholde elementer af samme datatype. Python har et separat modul til hรฅndtering af arrays, kaldet array, som du skal importere, fรธr du bruger den.

Bemรฆrk: Arrayet skal indeholde reelle tal sรฅsom heltal og flydende tal; strenge er ikke tilladt.

Fรธlgende kode opretter et heltalsarray i Python at gemme kontosaldi:

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

Mรฅder at erklรฆre et array pรฅ Python

Du kan erklรฆre et array i Python mens den initialiseres ved hjรฆlp af fรธlgende syntaks:

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

Syntaks for Array i Python

Syntaks for Array i Python

  1. Identifikator: Angiv et navn, som du normalt gรธr for variabler.
  2. Modul: Python har et sรฆrligt modul kaldet "array", som du fรธrst skal importere.
  3. Metode: Array-modulet har en metode til initialisering af arrayet, der tager to argumenter - typecode og elementer.
  4. Type kode: Angiv datatypen ved hjรฆlp af de tilgรฆngelige typekoder (se tabellen nedenfor).
  5. elementer: Angiv array-elementerne i firkantede parenteser, for eksempel [130, 450, 103].

Tabellen nedenfor viser de typekoder, der er tilgรฆngelige for understรธttede datatyper.

Skriv kode C Type Python Type Minimumsstรธrrelse (bytes)
'b' underskrevet char int 1
'B' usigneret char int 1
'du' Py_UNICODE Unicode-tegn 2
'h' underskrevet kort int 2
'H' usigneret kort int 2
'jeg' underskrevet int int 2
'JEG' usigneret int int 2
'l' underskrevet lang int 4
'L' usigneret lรฆnge int 4
'F' flyde flyde 4
'd' fordoble flyde 8

Hvordan fรฅr man adgang til en specifik arrayvรฆrdi?

Du kan tilgรฅ ethvert array-element ved hjรฆlp af dets indeks.

Syntaks:

arrayName[indexNum]

Eksempel:

balance[1]

Fรฅ adgang til et Array Element

Fรฅ adgang til et Array Element

Her tilgik vi den anden vรฆrdi i arrayet ved hjรฆlp af indeks 1. Outputtet er 200, som er den anden vรฆrdi i balance-arrayet.

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

Output:

200

Array Operationer i Python

Python Array-modulet tilbyder separate funktioner til array-operationer. Disse er destruktive metoder, hvilket betyder, at รฆndringen gemmes i array-variablen.

indsatte

Denne operation indsรฆtter et eller flere elementer i et array i begyndelsen, slutningen eller et givet indeks. Den forventer to argumenter: indeks og vรฆrdi.

arrayName.insert(index, value)

Eksempel: For at indsรฆtte en ny vรฆrdi lige efter indeks 1 (vรฆrdien 200), skal du referere til indeks 2 i insert-metoden.

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

Output:

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

Slette

Denne handling sletter รฉt element fra et array efter vรฆrdi, og accepterer et enkelt argument. Nรฅr den kรธres, arrangeres elementerne igen, og indeksene tildeles igen.

arrayName.remove(value)

Eksempel:

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

Output:

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

Sรธg

Denne operation sรธger efter et element efter vรฆrdi og returnerer dets indeks. Det er en ikke-destruktiv metode, sรฅ den รฆndrer ikke arrayvรฆrdierne.

arrayName.index(value)

Eksempel:

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

Output:

2

Opdatering

Opdatering erstatter den eksisterende vรฆrdi ved et givet indeks ved hjรฆlp af en simpel tildelingsoperator.Python arrays har ikke en update() metode.)

arrayName[index] = value

Eksempel: For at erstatte 150 (ved indeks 2) med 145:

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

Output:

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

Traverse

Du kan krydse en Python array ved hjรฆlp af en lรธkke:

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

Output:

300
200
100

Oprettelse af et array i C++

C++ er mere fleksibel end Python nรฅr du opretter arrays. Du kan oprette C++ arrays pรฅ tre mรฅder. Fรธlgende kode opretter et heltalsarray i C++ at gemme kontosaldi:

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

Mรฅder at erklรฆre et array pรฅ C++

Du kan deklarere et array pรฅ tre mรฅder, afhรฆngigt af dit programs krav.

Erklรฆring efter stรธrrelse:

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

Deklaration kun med array-elementer:

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

Erklรฆring efter stรธrrelse og varer:

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

Sรฅdan fรฅr du adgang til en specifik arrayvรฆrdi i C++?

Adgang til et array-element

Adgang til et array-element

#include <iostream>
using namespace std;

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

Output:

200

Array Operationer i C++

I modsรฆtning til Pythoni C++ Du skal selv programmere logikken til indsรฆttelses-, sletnings-, sรธge-, opdaterings- og gennemlรธbsoperationer.

indsatte

Indsรฆttelseslogikken er: Lรธft gennem array-elementerne, flyt dem til et stรธrre indeks, og tilfรธj derefter et nyt element ved det givne indeks. Eksemplet nedenfor har fem elementer og indsรฆtter 150 lige efter vรฆrdien 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 Operationer i Java

Lad os lave et program i Java der accepterer stรธrrelsen og vรฆrdierne af array-elementerne fra brugeren.

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

Rediger et element i en Java Array

Opdater et element efter dets indeks.

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

Adgang til elementer i en Java Array

Udskriv alle array-elementer ved at gennemlรธbe arrayet.

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

Ofte Stillede Spรธrgsmรฅl

Et array er en samling af elementer af samme datatype, der er lagret pรฅ sammenhรฆngende hukommelsesplaceringer. Hvert element tilgรฅs af et indeks, hvilket gรธr arrays effektive til at gemme og hente flere relaterede vรฆrdier.

A Python En liste kan indeholde elementer af forskellige datatyper, mens et array (fra array-modulet) indeholder elementer af en enkelt datatype. Arrays er mere hukommelseseffektive til store sรฆt numeriske data.

De fem grundlรฆggende operationer er indsรฆt (tilfรธj et element), slet (fjern et element), sรธg (find et element efter vรฆrdi), opdater (รฆndre en vรฆrdi i et indeks) og traverse (besรธg hvert element).

Adgang til et element via indeks er O(1) โ€” konstant tid โ€” fordi hukommelsesadressen beregnes direkte ud fra basisadressen og indekset. Indsรฆttelse og sletning kan vรฆre O(n) pรฅ grund af forskydning.

Sammenhรฆngende lagring lader programmet beregne ethvert elements adresse รธjeblikkeligt ud fra basisadressen plus indekset ganget med elementstรธrrelsen. Det er dette, der giver arrays deres hurtige, konstante tidsmรฆssige tilfรฆldige adgang.

Python behรธver array-modulet og tilbyder indbyggede driftsmetoder. C++ og Java deklarerer arrays native, men krรฆver, at du selv koder indsรฆttelses-, sletnings- og sรธgelogik. Java arrays eksponerer ogsรฅ en length-egenskab.

Arrays er grundlaget for vektorer, matricer og tensorer, der bruges i AI. Biblioteker som NumPy og TensorFlow gemmer trรฆningsdata og modelvรฆgte som flerdimensionelle arrays til hurtig numerisk beregning.

Ja. AI-kodningsassistenter registrerer indeksfejl, der er off-by-one og out-of-bounds, foreslรฅr rettelser og forklarer, hvorfor et indeks overskred arraylรฆngden, helping Begyndere lรธser almindelige array-fejl hurtigt.

Opsummer dette indlรฆg med: