Pole (datová struktura)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Prázdné jednorozměrné pole o 10 prvcích (zde indexováno od nuly, některé jazyky indexují od jedničky) Pojmem pole (také vektor) se v informatice označuje datová struktura, která sdružuje daný vždy konečný počet prvků (čísel, textových řetězců, …) stejného datového typu. K jednotlivým prvkům pole se přistupuje pomocí jejich indexu (celého čísla, označujícího pořadí prvku v rámci pole). Velikost pole zůstává při běhu programu neměnná (některé programovací jazyky toto omezení nekladou, zvětšení pole je ale časově náročná operace).

Ve většině programovacích jazyků je pole vestavěným datovým typem (viz též abstraktní datový typ).

Operace s polem

přístup k prvku - probíhá v konstantním čase, tj. O(1); pomocí indexu lze vypočítat přesnou adresu v paměti (vizte pointerovou aritmetiku) * vyhledávání prvku - (lineární vyhledávání) je řešitelné v lineárním čase, tj. +more O(n); v nejhorším případě je nutné projít celé pole * vyhledávání prvku v seřazeném poli - hledání metodou půlení intervalu indexů pole (binární vyhledávání) má logaritmickou časovou složitost, tj. O(\log n).

Indexování prvků

Různé programovací jazyky se (mimo jiné) liší v tom, jakým indexem označují první prvek pole: * C, C++, C#, Java a další indexují od nuly (a index vynásobený velikostí prvku v bytech vyjadřuje posunutí příslušného prvku v paměti od počátku pole). * BASIC a další indexují od jedničky, což odpovídá matematickému značení a přirozenému počítání. +more * Visual Basic, Pascal a další umožňují nastavit horní a dolní meze pole individuálně.

Syntax pro zápis indexů

Kromě způsobu indexování prvků se jazyky liší také syntaxí zápisu indexů. Řada programovacích jazyků pro indexy používá kulaté závorky, např. +more Tabulka(i,j). Další jazyky (např. Algol, Pascal a jazyky z nich odvozené), používají hranaté závorky, např. Tabulka[i,j]. Důvodem je i syntakticky na první pohled odlišit přístup k prvkům pole od jiných programových konstrukcí, kde se používají kulaté závorky. Z ukázek je rovněž zřejmé, že indexem pole může být (a zpravidla bývá) proměnná, tj. konkrétní hodnota indexu je spočtena až za běhu programu. Pochopitelně lze jako index použít také konstantu, např. Tabulka(2,3), resp. Tabulka[2,3]. Typické je ale právě použití proměnných v kombinaci s příkazem cyklus for (případně jinými řídícími strukturami pro cyklus).

Použití

Pole jsou jedním z nejzákladnějších datových typů, mají tedy široké použití nejen samy o sobě, ale také jako součást komplexnějších struktur, jako jsou haldy, hašovací tabulky či řetězce.

Vícerozměrná pole

V praktických úlohách, zejména v náročnějších výpočetních a grafických aplikacích, se uplatňují i vícerozměrná pole. Ta se indexují uspořádanou k-ticí celých čísel (souřadnic) - např. +more a[3, 2, 5]. Obzvláště často se používají dvourozměrná pole (matice), jen zřídka se v praxi používá počet rozměrů větší než tři.

Některé jazyky vícerozměrná pole nepodporují přímo, ale reprezentují je pomocí pole polí, např. dvourozměrná matice se vyjádří jednorozměrným polem řádků, z nichž každý obsahuje pole, které obsahuje již položky tohoto řádku (výše zmíněný příklad prvku trojrozměrné matice pak je a[3][2][5]).

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top