Taulukko tietorakenteessa (Operations)

⚡ Älykäs yhteenveto

Tietorakenteiden taulukko tallentaa useita saman tietotyypin alkioita vierekkäisiin muistipaikkoihin, joista jokainen on tavoitettavissa indeksin avulla. Tässä opetusohjelmassa selitetään taulukoiden käsite, miksi ne ovat tärkeitä ja miten niitä luodaan ja käsitellään. Python, C++ja Java esimerkkien avulla.

  • 📦 Ydinmääritelmä: Taulukko sisältää useita samantyyppisiä elementtejä vierekkäisessä muistissa, joihin pääsee käsiksi indeksin avulla.
  • ⚡ Nopea pääsy: Mikä tahansa alkio haetaan vakioajassa sen indeksin avulla.
  • 🛠️ Viisi OperaTIONS: Lisää, poista, hae, päivitä ja käy läpi taulukkotyökaluilla.
  • 🌐 Kielien välinen: Python käyttää array-moduulia; C++ ja Java määritä taulukot natiivisti manuaalisella logiikalla.
  • 🤖 Tekoälyn merkitys: Taulukot tukevat tensoreita ja matriiseja, jotka tukevat koneoppimislaskelmia.

Taulukko tietorakenteessa (Operations)

Mikä on Array tietorakenteessa?

An ryhmä on tietorakenne, johon tallennetaan useampi kuin yksi saman tyyppinen tietoelementti. Taulukon alkiot varataan vierekkäisiin muistipaikkoihin, ja näitä paikkoja kutsutaan elementtejä taulukosta. Taulukon alkioiden kokonaismäärä on sen pituus.

Jokaiseen elementtiin päästään käsiksi sen sijainnin perusteella, ja tätä viittausta kutsutaan indeksi or alaindeksi.

Array-konsepti

Taulukon käsitekaavio

Taulukon käsitekaavio

Yllä oleva kaavio havainnollistaa sitä:

  1. Taulukko on elementtien säiliö.
  2. Elementeillä on tietty arvo ja tietotyyppi, kuten ”ABC”, TRUE tai FALSE.
  3. Jokaisella elementillä on oma indeksi, jota käytetään sen käyttämiseen.

Huomautus:

  • Elementit tallennetaan vierekkäisiin muistipaikkoihin.
  • Indeksi on aina pienempi kuin taulukon kohteiden kokonaismäärä.
  • Mikä tahansa taulukkona ilmoitettu muuttuja voi tallentaa useita arvoja.
  • Lähes kaikilla kielillä on sama taulukoiden käsite, mutta ne eroavat toisistaan ​​siinä, miten ne deklaroivat ja alustavat ne.
  • Kolme osaa pysyy yhteisenä kaikissa alustuksissa: taulukon nimi, elementit ja elementtien tietotyyppi.

Seuraava kaavio näyttää syntaksin, jolla määritetään joukko sisään Python ja C++, mikä osoittaa, että käsite pysyy samana, vaikka syntaksi vaihtelee hieman kielten välillä.

Ymmärrä taulukoiden syntaksi

Ymmärrä taulukoiden syntaksi

  • Taulukon nimi: tarvitaan elementtikokoelman helppoa tarkastelua varten.
  • Tietotyyppi: tarvitaan tyyppitarkistukseen ja tietojen eheyden tarkistamiseen.
  • elementit: taulukossa olevat data-arvot.

Miksi tarvitsemme taulukoita?

  • Taulukot sopivat erinomaisesti useiden arvojen tallentamiseen yhteen muuttujaan.
  • Ne käsittelevät monia arvoja helposti ja nopeasti.
  • Arvojen lajittelu ja hakeminen on helpompaa taulukoiden avulla.

Array:n luominen sisään Python

In Python, taulukot eroavat listoista: lista voi sisältää eri tietotyyppisiä alkioita, kun taas taulukko voi sisältää vain saman tietotyypin alkioita. Python siinä on erillinen moduuli taulukoiden käsittelyä varten, nimeltään array, joka sinun on tuotava ennen sen käyttöä.

Huomautus: Taulukon on sisällettävä reaalilukuja, kuten kokonaislukuja ja liukulukuja; merkkijonoja ei sallita.

Seuraava koodi luo kokonaislukutaulukon Python tilin saldojen tallentamiseen:

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

Tapoja ilmoittaa taulukko sisään Python

Voit ilmoittaa taulukon sisään Python samalla kun se alustetaan seuraavalla syntaksilla:

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

Array in syntaksi Python

Array in syntaksi Python

  1. tunniste: määritä nimi kuten yleensä muuttujille.
  2. Moduuli: Python sisältää erikoismoduulin nimeltä ”array”, joka sinun on tuotava ensin.
  3. Menetelmä: Array-moduulilla on metodi taulukon alustamiseen, joka ottaa vastaan ​​kaksi argumenttia — typecode ja elements.
  4. Tyyppikoodi: Määritä tietotyyppi käyttämällä käytettävissä olevia tyyppikoodeja (katso alla oleva taulukko).
  5. elementit: Määritä taulukon alkiot hakasulkeissa, esimerkiksi [130, 450, 103].

Alla olevassa taulukossa luetellaan tuettujen tietotyyppien tyyppikoodit.

Kirjoita koodi C-tyyppi Python Tyyppi Minimikoko (tavua)
'b' allekirjoitettu merkki int 1
'B' allekirjoittamaton char int 1
"sinä" Py_UNICODE Unicode-merkki 2
'h' allekirjoitettu lyhyesti int 2
'H' allekirjoittamaton lyhyt int 2
'I' allekirjoitettu int int 2
'I' allekirjoittamaton int int 2
'L' allekirjoitettu pitkään int 4
'L' allekirjoittamaton pitkä int 4
'F' kellua kellua 4
'd' kaksinkertainen kellua 8

Kuinka päästä käsiksi tiettyyn taulukon arvoon?

Voit käyttää mitä tahansa taulukon alkiota sen indeksin avulla.

Syntaksi:

arrayName[indexNum]

Esimerkiksi:

balance[1]

Käytä taulukkoelementtiä

Käytä taulukkoelementtiä

Tässä käytimme taulukon toista arvoa indeksin 1 avulla. Tuloste on 200, joka on saldotaulukon toinen arvo.

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

lähtö:

200

Ryhmä Operasisään Python

Python array-moduuli tarjoaa erilliset funktiot taulukkooperaatioille. Nämä ovat destruktiivisia metodeja, eli muutos tallennetaan taulukkomuuttujaan.

liite

Tämä toiminto lisää yhden tai useamman alkion taulukon alkuun, loppuun tai mihin tahansa annettuun indeksiin. Se odottaa kahta argumenttia: indeksiä ja arvoa.

arrayName.insert(index, value)

Esimerkiksi: Jos haluat lisätä uuden arvon heti indeksin 1 (arvo 200) jälkeen, viittaa indeksiin 2 lisäysmetodissa.

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

lähtö:

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

Poista

Tämä toiminto poistaa yhden alkion taulukosta arvon perusteella ja hyväksyy yhden argumentin. Suorituksen jälkeen alkiot järjestetään uudelleen ja indeksit määritetään uudelleen.

arrayName.remove(value)

Esimerkiksi:

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

lähtö:

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

Haku

Tämä operaatio etsii alkiota arvon perusteella ja palauttaa sen indeksin. Se on ei-tuhoava menetelmä, joten se ei muuta taulukon arvoja.

arrayName.index(value)

Esimerkiksi:

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

lähtö:

2

Päivitykset

Päivitys korvaa olemassa olevan arvon tietyssä indeksissä käyttämällä yksinkertaista sijoitusoperaattoria.Python taulukoilla ei ole update() menetelmä.)

arrayName[index] = value

Esimerkiksi: Korvaa 150 (indeksissä 2) luvulla 145:

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

lähtö:

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

poikittainen

Voit kulkea a Python taulukko silmukan avulla:

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

lähtö:

300
200
100

Array:n luominen sisään C++

C++ on joustavampi kuin Python taulukoita luotaessa. Voit luoda C++ taulukot kolmella tavalla. Seuraava koodi luo kokonaislukutaulukon C++ tilin saldojen tallentamiseen:

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

Tapoja ilmoittaa taulukko sisään C++

Voit määrittää taulukon kolmella tavalla ohjelmasi vaatimuksista riippuen.

Ilmoitus koon mukaan:

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

Määrittely, jossa käytetään vain taulukon alkioita:

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

Ilmoitus koon ja nimikkeiden mukaan:

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

Kuinka päästä käsiksi tiettyyn taulukon arvoon C++?

Matriisielementin käyttäminen

Matriisielementin käyttäminen

#include <iostream>
using namespace std;

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

lähtö:

200

Ryhmä Operasisään C++

Toisin kuin Pythonsisään C++ Sinun on ohjelmoitava logiikka itse lisäys-, poisto-, haku-, päivitys- ja läpikulkuoperaatioille.

liite

Lisäyslogiikka on seuraava: käydään läpi taulukon alkiot, siirretään ne suurempaan indeksiin ja lisätään sitten uusi alkio annettuun indeksiin. Alla olevassa esimerkissä on viisi alkiota ja 150 lisätään heti arvon 200 jälkeen.

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

Ryhmä Operasisään Java

Luodaan ohjelma sisään Java joka hyväksyy käyttäjältä taulukon alkioiden koon ja arvot.

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

Muokkaa elementtiä Java Ryhmä

Päivitä elementti sen indeksin perusteella.

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

Käytä elementtejä a:ssa Java Ryhmä

Tulosta kaikki taulukon alkiot käymällä läpi taulukon.

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

UKK

Taulukko on kokoelma saman tietotyypin alkioita, jotka on tallennettu vierekkäisiin muistipaikkoihin. Jokaiseen alkioon pääsee käsiksi indeksin avulla, mikä tekee taulukoista tehokkaita useiden toisiinsa liittyvien arvojen tallentamiseen ja hakemiseen.

A Python list voi sisältää eri tietotyyppisiä kohteita, kun taas taulukko (taulukkomoduulista) sisältää vain yhden tietotyypin kohteita. Taulukot ovat muistitehokkaampia suurille numeerisille tietojoukoille.

Viisi perusoperaatiota ovat lisäys (lisää kohde), poisto (poista kohde), haku (etsi kohde arvon perusteella), päivitys (muuta indeksin arvoa) ja läpikäynti (käy jokaisessa elementissä).

Elementin käyttö indeksin avulla on O(1) – vakioaika – koska muistiosoite lasketaan suoraan perusosoitteesta ja indeksistä. Lisäys ja poisto voivat olla O(n) siirron vuoksi.

Yhtenäinen tallennus antaa ohjelman laskea minkä tahansa elementin osoitteen välittömästi perusosoitteesta plus indeksistä kerrottuna elementin koko. Tämä antaa taulukoille nopean, vakioaikaisen satunnaisen käytön.

Python tarvitsee taulukkomoduulin ja tarjoaa sisäänrakennettuja operaatiometodeja. C++ ja Java määrittävät taulukot natiivisti, mutta vaativat sinua koodaamaan lisäys-, poisto- ja hakulogiikan itse. Java Taulukot paljastavat myös length-ominaisuuden.

Taulukot ovat tekoälyssä käytettyjen vektorien, matriisien ja tensorien perusta. Kirjastot, kuten NumPy ja TensorFlow, tallentavat harjoitusdataa ja mallien painoja moniulotteisina taulukoina nopeaa numeerista laskentaa varten.

Kyllä. Tekoälykoodausavustajat havaitsevat yhden virheen ja rajojen ulkopuoliset indeksivirheet, ehdottavat korjauksia ja selittävät, miksi indeksi ylitti taulukon pituuden.ping aloittelijat ratkaisevat yleisiä taulukkovirheitä nopeasti.

Tiivistä tämä viesti seuraavasti: