Tablica w strukturze danych (Operacje)

⚡ Inteligentne podsumowanie

Tablica w strukturze danych przechowuje wiele elementów tego samego typu danych w sąsiadujących lokalizacjach pamięci, do których można dotrzeć za pomocą indeksu. Ten samouczek wyjaśnia koncepcję, dlaczego tablice są ważne oraz jak je tworzyć i na nich operować. Python, C++, Java z przykładami.

  • 📦 Definicja podstawowa: Tablica przechowuje kilka elementów tego samego typu w sąsiadującej pamięci, do których dostęp uzyskuje się za pomocą indeksu.
  • Szybki dostęp: Każdy element jest pobierany w stałym czasie za pomocą jego indeksu.
  • 🛠️. Pięć Operacje: Wstawianie, usuwanie, wyszukiwanie, aktualizowanie i przeglądanie tablicy — zestaw narzędzi.
  • 🌐 Międzyjęzykowe: Python używa modułu tablicowego; C++ oraz Java deklaruj tablice natywnie, wykorzystując logikę ręczną.
  • 🤖 Znaczenie sztucznej inteligencji: Tablice stanowią podstawę tensorów i macierzy, które wspomagają obliczenia uczenia maszynowego.

Tablica w strukturze danych (Operacje)

Co to jest tablica w strukturze danych?

An szyk to struktura danych służąca do przechowywania więcej niż jednego elementu danych o podobnym typie. Elementy tablicy są przydzielane do sąsiadujących lokalizacji w pamięci, a lokalizacje te nazywane są Elementy tablicy. Całkowita liczba elementów w tablicy to jej długość.

Dostęp do każdego elementu uzyskuje się poprzez jego pozycję, a to odniesienie nazywa się wskaźnik or indeks.

Pojęcie tablicy

Schemat koncepcyjny tablic

Schemat koncepcyjny tablic

Powyższy diagram ilustruje to:

  1. Tablica jest kontenerem elementów.
  2. Elementy mają określoną wartość i typ danych, np. „ABC”, PRAWDA lub FAŁSZ.
  3. Każdy element ma swój własny indeks, który służy do uzyskania do niego dostępu.

Uwaga:

  • Elementy są przechowywane w sąsiadujących lokalizacjach pamięci.
  • Indeks jest zawsze mniejszy niż całkowita liczba elementów tablicy.
  • Każda zmienna zadeklarowana jako tablica może przechowywać wiele wartości.
  • Prawie wszystkie języki opierają się na tej samej koncepcji tablic, ale różnią się sposobem ich deklarowania i inicjowania.
  • Trzy części pozostają wspólne dla wszystkich inicjalizacji: nazwa tablicy, elementy i typ danych elementów.

Poniższy diagram przedstawia składnię deklarowania tablica w Python oraz C++, co dowodzi, że koncepcja pozostaje taka sama, mimo że składnia nieznacznie różni się w zależności od języka.

Zrozumienie składni tablic

Zrozumienie składni tablic

  • Nazwa tablicy: potrzebne do łatwego odwoływania się do zbioru elementów.
  • Typ danych: potrzebne do sprawdzania typów i integralności danych.
  • Elementy: wartości danych obecne w tablicy.

Dlaczego potrzebujemy tablic?

  • Tablice idealnie nadają się do przechowywania wielu wartości w jednej zmiennej.
  • Łatwo i szybko przetwarzają wiele wartości.
  • Sortowanie i wyszukiwanie wartości jest łatwiejsze za pomocą tablic.

Tworzenie tablicy w Python

In PythonTablice różnią się od list tym, że lista może zawierać elementy różnych typów danych, natomiast tablica może zawierać wyłącznie elementy tego samego typu danych. Python posiada oddzielny moduł do obsługi tablic, zwany array, który musisz zaimportować przed jego użyciem.

Uwaga: Tablica musi zawierać liczby rzeczywiste, takie jak liczby całkowite i zmiennoprzecinkowe. Ciągi znaków nie są dozwolone.

Poniższy kod tworzy tablicę liczb całkowitych w Python do przechowywania sald kont:

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

Sposoby deklarowania tablicy w Python

Możesz zadeklarować tablicę w Python podczas inicjalizacji używając następującej składni:

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

Składnia tablicy w Python

Składnia tablicy w Python

  1. Identyfikator: podaj nazwę, tak jak zwykle robisz to w przypadku zmiennych.
  2. Moduły: Python ma specjalny moduł o nazwie „array”, który należy najpierw zaimportować.
  3. Metoda: Moduł tablicy ma metodę inicjowania tablicy, przyjmującą dwa argumenty — typecode i elementy.
  4. Kod typu: określ typ danych korzystając z dostępnych kodów typów (patrz tabela poniżej).
  5. Elementy: określ elementy tablicy w nawiasach kwadratowych, na przykład [130, 450, 103].

Poniższa tabela zawiera listę kodów typów dostępnych dla obsługiwanych typów danych.

Wpisz kod Typ C Python Typ Minimalny rozmiar (bajty)
'b' podpisany char int 1
'B' niepodpisany char int 1
„ty” Py_UNICODE Znak Unicode 2
'h' podpisany krótko int 2
„H” bez znaku krótkie int 2
'ja' podpisał się m.in int 2
'JA' niepodpisany int 2
'l' podpisany długo int 4
„L” bez znaku długo int 4
'fa' unosić się unosić się 4
're' Podwójna unosić się 8

Jak uzyskać dostęp do określonej wartości tablicy?

Dostęp do dowolnego elementu tablicy można uzyskać za pomocą jego indeksu.

Składnia:

arrayName[indexNum]

Przykład:

balance[1]

Uzyskaj dostęp do elementu tablicy

Uzyskaj dostęp do elementu tablicy

Tutaj uzyskaliśmy dostęp do drugiej wartości tablicy przy użyciu indeksu 1. Wynikiem jest 200, czyli druga wartość tablicy salda.

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

Wyjście:

200

Szyk Operaw Python

Python Moduł array udostępnia oddzielne funkcje do operacji na tablicach. Są to metody destrukcyjne, co oznacza, że ​​modyfikacja jest zapisywana w zmiennej tablicowej.

wstawka

Ta operacja wstawia jeden lub więcej elementów do tablicy na początku, na końcu lub pod dowolnym indeksem. Oczekuje dwóch argumentów: indeksu i wartości.

arrayName.insert(index, value)

Przykład: Aby wstawić nową wartość zaraz po indeksie 1 (wartość 200), odwołaj się do indeksu 2 w metodzie insert.

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

Wyjście:

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

Usunięcia

Ta operacja usuwa jeden element z tablicy według wartości, przyjmując pojedynczy argument. Po jej uruchomieniu elementy są ponownie rozmieszczane, a indeksy przypisywane.

arrayName.remove(value)

Przykład:

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

Wyjście:

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

Szukaj

Ta operacja wyszukuje element według wartości i zwraca jego indeks. Jest to metoda niedestrukcyjna, więc nie zmienia wartości tablicy.

arrayName.index(value)

Przykład:

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

Wyjście:

2

Aktualizacja

Aktualizacja polega na zastąpieniu istniejącej wartości pod danym indeksem za pomocą prostego operatora przypisania. (Python tablice nie mają update() metoda.)

arrayName[index] = value

Przykład: Aby zastąpić 150 (o indeksie 2) liczbą 145:

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

Wyjście:

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

Przemierzać

Możesz przejść przez Python tablica za pomocą pętli:

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

Wyjście:

300
200
100

Tworzenie tablicy w C++

C++ jest bardziej elastyczny niż Python podczas tworzenia tablic. Możesz tworzyć C++ tablice na trzy sposoby. Poniższy kod tworzy tablicę liczb całkowitych w C++ do przechowywania sald kont:

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

Sposoby deklarowania tablicy w C++

Tablicę można zadeklarować na trzy sposoby, zależnie od wymagań programu.

Deklaracja według rozmiaru:

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

Deklaracja zawierająca tylko elementy tablicy:

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

Oświadczenie według rozmiaru i pozycji:

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

Jak uzyskać dostęp do określonej wartości tablicy w C++?

Dostęp do elementu tablicy

Dostęp do elementu tablicy

#include <iostream>
using namespace std;

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

Wyjście:

200

Szyk Operaw C++

w odróżnieniu Pythonw C++ musisz samodzielnie zaprogramować logikę operacji wstawiania, usuwania, wyszukiwania, aktualizowania i przechodzenia.

wstawka

Logika wstawiania wygląda następująco: przechodzenie przez elementy tablicy, przesuwanie ich o indeks wyższy, a następnie dodawanie nowego elementu o podanym indeksie. Poniższy przykład zawiera pięć elementów i wstawianie wartości 150 zaraz po wartości 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]);
   }
}

Szyk Operaw Java

Stwórzmy program w Java który akceptuje rozmiar i wartości elementów tablicy od użytkownika.

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

Modyfikuj element w Java Szyk

Zaktualizuj element według jego indeksu.

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

Dostęp do elementów w Java Szyk

Wypisz wszystkie elementy tablicy, przechodząc przez tablicę.

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

FAQ

Tablica to zbiór elementów tego samego typu danych przechowywanych w sąsiadujących lokalizacjach pamięci. Dostęp do każdego elementu odbywa się za pomocą indeksu, co sprawia, że ​​tablice są efektywne w przechowywaniu i pobieraniu wielu powiązanych wartości.

A Python Lista może zawierać elementy różnych typów danych, natomiast tablica (z modułu array) zawiera elementy jednego typu danych. Tablice są bardziej wydajne pod względem pamięci w przypadku dużych zestawów danych liczbowych.

Pięcioma podstawowymi operacjami są: wstawianie (dodawanie elementu), usuwanie (usuwanie elementu), wyszukiwanie (znajdowanie elementu według wartości), aktualizacja (zmiana wartości w indeksie) i przeglądanie (przechodzenie przez każdy element).

Dostęp do elementu według indeksu jest zmienny (O(1)) – czas stały – ponieważ adres pamięci jest obliczany bezpośrednio na podstawie adresu bazowego i indeksu. Wstawianie i usuwanie może być zmienne (O(n)) ze względu na przesunięcie.

Ciągła pamięć pozwala programowi natychmiast obliczyć adres dowolnego elementu na podstawie adresu bazowego plus indeks pomnożony przez rozmiar elementu. To właśnie zapewnia tablicom szybki, stały dostęp losowy.

Python wymaga modułu tablicowego i oferuje wbudowane metody operacyjne. C++ oraz Java deklarują tablice natywnie, ale wymagają od Ciebie samodzielnego napisania logiki wstawiania, usuwania i wyszukiwania. Java tablice mają również właściwość długości.

Tablice stanowią podstawę wektorów, macierzy i tensorów wykorzystywanych w sztucznej inteligencji. Biblioteki takie jak NumPy i TensorFlow przechowują dane treningowe i wagi modeli w postaci wielowymiarowych tablic, co umożliwia szybkie obliczenia numeryczne.

Tak. Asystenci kodowania AI wykrywają błędy indeksów poza zakresem i poza zakresem, sugerują poprawki i wyjaśniają, dlaczego indeks przekroczył długość tablicy.ping początkujący szybko rozwiązują typowe błędy tablicowe.

Podsumuj ten post następująco: