Pole v datové struktuře (Operace)

⚡ Chytré shrnutí

Pole v datové struktuře ukládá více položek stejného datového typu na sousedících paměťových místech, přičemž každé z nich je dosažitelné pomocí indexu. Tento tutoriál vysvětluje koncept, proč jsou pole důležitá a jak je vytvářet a pracovat s nimi v... Python, C++, a Java s příklady.

  • ???? Základní definice: Pole obsahuje několik prvků stejného typu v sousední paměti, ke kterým se přistupuje pomocí indexu.
  • ⚡ Rychlý přístup: Libovolný prvek je načten v konstantním čase pomocí svého indexu.
  • 🛠️ Pět Operaakce: Vkládání, mazání, vyhledávání, aktualizace a procházení z nástroje pro pole.
  • 🌐 Vícejazyčnost: Python používá modul pole; C++ a Java deklarovat pole nativně s manuální logikou.
  • 🤖 Relevance umělé inteligence: Pole jsou základem tenzorů a matic, které pohánějí výpočty strojového učení.

Pole v datové struktuře (Operace)

Co je pole v datové struktuře?

An řada je datová struktura pro ukládání více než jedné datové položky podobného datového typu. Položky pole jsou alokovány na sousedních paměťových místech a tato místa se nazývají prvky pole. Celkový počet prvků v poli je jeho délka.

Ke každému prvku se přistupuje podle jeho pozice a tento odkaz se nazývá index or index.

Koncept pole

Koncepční schéma polí

Koncepční schéma polí

Výše uvedený diagram ilustruje, že:

  1. Pole je kontejner prvků.
  2. Prvky mají specifickou hodnotu a datový typ, například „ABC“, TRUE nebo FALSE.
  3. Každý prvek má svůj vlastní index, který se používá pro přístup k němu.

Poznámka:

  • Prvky jsou uloženy na souvislých paměťových místech.
  • Index je vždy menší než celkový počet položek pole.
  • Jakákoli proměnná deklarovaná jako pole může ukládat více hodnot.
  • Téměř všechny programovací jazyky sdílejí stejný koncept polí, ale liší se v tom, jak je deklarují a inicializují.
  • Tři části zůstávají společné pro všechny inicializace: název pole, prvky a datový typ prvků.

Následující diagram znázorňuje syntaxi pro deklaraci pole v Python a C++, což dokazuje, že koncept zůstává stejný, i když se syntaxe mezi jazyky mírně liší.

Pochopte syntaxi polí

Pochopte syntaxi polí

  • Název pole: potřebné pro snadnou orientaci v kolekci prvků.
  • Datový typ: potřebné pro kontrolu typů a integritu dat.
  • Prvky: datové hodnoty přítomné v poli.

Proč potřebujeme pole?

  • Pole jsou ideální pro ukládání více hodnot do jedné proměnné.
  • Zpracovávají mnoho hodnot snadno a rychle.
  • Řazení a vyhledávání hodnot je s poli snazší.

Vytvoření pole v Python

In PythonPole se liší od seznamů: seznam může obsahovat položky různých datových typů, zatímco pole může obsahovat pouze položky stejného datového typu. Python má samostatný modul pro práci s poli, nazvaný array, který musíte před použitím importovat.

Poznámka: Pole musí obsahovat reálná čísla, jako jsou celá čísla a čísla s desetinnou čárkou; řetězce nejsou povoleny.

Následující kód vytvoří celočíselné pole v Python pro uložení zůstatků na účtech:

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

Způsoby, jak deklarovat pole Python

Můžete deklarovat pole v Python při inicializaci pomocí následující syntaxe:

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

Syntaxe Array in Python

Syntaxe Array in Python

  1. Identifikátor: zadejte název, jak obvykle děláte u proměnných.
  2. Moduly: Python má speciální modul s názvem „array“, který musíte nejprve importovat.
  3. Metoda: Modul array má metodu pro inicializaci pole, která přijímá dva argumenty – typový kód a prvky.
  4. Kód typu: určete datový typ pomocí dostupných typových kódů (viz tabulka níže).
  5. Prvky: Zadejte prvky pole v hranatých závorkách, například [130, 450, 103].

V následující tabulce jsou uvedeny typové kódy dostupné pro podporované datové typy.

Zadejte kód Typ C Python Typ Minimální velikost (bajty)
'b' podepsaný char int 1
'B' nepodepsaný char int 1
'u' Py_UNICODE Znak Unicode 2
'h' podepsáno krátce int 2
'H' bez znaménka krátký int 2
„já“ podepsané int int 2
„Já“ neoznačené int int 2
'l' podepsané dlouhé int 4
'L' bez podpisu dlouho int 4
'F' vznášet se vznášet se 4
'd' zdvojnásobit vznášet se 8

Jak získat přístup k určité hodnotě pole?

K libovolné položce pole můžete přistupovat pomocí jejího indexu.

Syntaxe:

arrayName[indexNum]

Příklad:

balance[1]

Přístup k prvku pole

Přístup k prvku pole

Zde jsme přistupovali k druhé hodnotě pole pomocí indexu 1. Výstup je 200, což je druhá hodnota pole balance.

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

Výstup:

200

Řada Operav Python

Jedno Python Modul array poskytuje samostatné funkce pro operace s poli. Jedná se o destruktivní metody, což znamená, že modifikace je uložena v proměnné pole.

Vložit

Tato operace vkládá jednu nebo více položek do pole na začátek, konec nebo na libovolný daný index. Očekává dva argumenty: index a hodnotu.

arrayName.insert(index, value)

Příklad: Chcete-li vložit novou hodnotu hned za index 1 (hodnota 200), odkazujte v metodě insert na index 2.

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

Výstup:

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

Vymazat

Tato operace odstraní jednu položku z pole typu value a přijme jeden argument. Po jejím spuštění se položky znovu uspořádají a indexy se znovu přiřadí.

arrayName.remove(value)

Příklad:

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

Výstup:

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

Hledat

Tato operace vyhledává položku podle hodnoty a vrací její index. Jedná se o nedestruktivní metodu, takže nemění hodnoty pole.

arrayName.index(value)

Příklad:

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

Výstup:

2

Aktualizace

Aktualizace nahrazuje existující hodnotu na daném indexu pomocí jednoduchého operátoru přiřazení.Python pole nemají update() metoda.)

arrayName[index] = value

Příklad: Nahrazení čísla 150 (na indexu 2) číslem 145:

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

Výstup:

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

přejít

Můžete procházet a Python pole pomocí smyčky:

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

Výstup:

300
200
100

Vytvoření pole v C++

C++ je pružnější než Python při vytváření polí. Můžete vytvořit C++ pole třemi způsoby. Následující kód vytvoří celočíselné pole v C++ pro uložení zůstatků na účtech:

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

Způsoby, jak deklarovat pole C++

Pole můžete deklarovat třemi způsoby, v závislosti na požadavcích vašeho programu.

Prohlášení podle velikosti:

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

Deklarace pouze s položkami pole:

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

Prohlášení podle velikosti a položek:

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

Jak získat přístup ke konkrétní hodnotě pole v C++?

Přístup k prvku pole

Přístup k prvku pole

#include <iostream>
using namespace std;

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

Výstup:

200

Řada Operav C++

Na rozdíl od Python, v C++ Pro operace vkládání, mazání, vyhledávání, aktualizace a posuvu si musíte logiku naprogramovat sami.

Vložit

Logika vkládání je následující: projít prvky pole, posunout je na vyšší index a poté přidat nový prvek na daném indexu. Následující příklad má pět položek a vkládá číslo 150 hned za hodnotu 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]);
   }
}

Řada Operav Java

Vytvořme si program v Java který přijímá velikost a hodnoty prvků pole od uživatele.

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

Úprava prvku v Java Řada

Aktualizovat prvek podle jeho indexu.

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

Přístup k prvkům v Java Řada

Vytiskněte všechny prvky pole procházením pole.

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

Nejčastější dotazy

Pole je kolekce prvků stejného datového typu uložených na sousedících paměťových místech. Ke každému prvku se přistupuje pomocí indexu, což pole činí efektivními pro ukládání a načítání více souvisejících hodnot.

A Python Seznam může obsahovat položky různých datových typů, zatímco pole (z modulu array) obsahuje položky jednoho datového typu. Pole jsou paměťově efektivnější pro velké sady číselných dat.

Pět základních operací je vložení (přidání položky), odstranění (odstranění položky), vyhledávání (nalezení položky podle hodnoty), aktualizace (změna hodnoty v indexu) a procházení (návštěva každého prvku).

Přístup k prvku pomocí indexu trvá O(1) – konstantní čas – protože adresa paměti se vypočítává přímo ze základní adresy a indexu. Vkládání a mazání může být kvůli posunu O(n).

Souvislé úložiště umožňuje programu okamžitě vypočítat adresu libovolného prvku z bázové adresy plus index krát velikost prvku. To je to, co dává polím jejich rychlý a konstantní náhodný přístup.

Python potřebuje modul pole a nabízí vestavěné metody ovládání. C++ a Java deklarovat pole nativně, ale vyžadují, abyste si sami naprogramovali logiku vkládání, mazání a vyhledávání. Java Pole také zpřístupňují vlastnost length.

Pole jsou základem vektorů, matic a tenzorů používaných v umělé inteligenci. Knihovny jako NumPy a TensorFlow ukládají trénovací data a váhy modelů jako vícerozměrná pole pro rychlé numerické výpočty.

Ano. Asistenti kódování s umělou inteligencí detekují chyby indexu „mimo hranici“ a chyby indexu „mimo hranici“, navrhují opravy a vysvětlují, proč index překročil délku pole.ping Začátečníci rychle řeší běžné chyby v polích.

Shrňte tento příspěvek takto: