Diskuze: KSI: Datové struktury
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Hádám, že po vás chtějí, abyste odpovědi na otázky vyčetli z toho článku. Pokud sem ale nedáš na něj link, tak ti asi moc lidí nepomůže, protože ten článek může obsahovat pro něj specifické definice pojmů, popř. úhel pohledu jeho autorů, které jsou pro zodpovězení otázek důležité. Také se musíš rozhodnout, zda-li se od vás očekává čistě vědecký pohled, nebo pohled více praktický.
Třeba u té 13
Z čistě vědeckého pohledu by tě složitost implementace zajímat neměla;
měl bys veškeré úsilí věnovat do vylepšení vlastností datové
struktury. Výkonné implementace datových struktur také často přehledně
napsané nejsou, např. protože jsou lock-free, používají vektorové
operace, vyhýbají se podmíněným příkazům, alokacím paměti...
Z hlediska praktického je to samozřejmě pravda.
Působí to na mě tak, že v tom článku se definují pojmy jako abstraktní datová struktura a kokrétní datová struktura a je tam o nich nějaké větší povídání, ze kterého odvodíš odpovědi na ty otázky.
Datové struktury nám slouží k efektivnímu ukládání komplexnějších či opakujících se dat. Jedná se o jakési skladiště pro data, jednotlivé datové položky v nich nazýváme prvky datové struktury. Dalším důvodem zavedení datových struktur je také zjednodušení programu. Lépe se nám totiž bude pracovat se strukturou Clovek s prvky datum_narozeni, rodne_cislo, vyska a vaha než s obyčejným polem čísel, kde 4 po sobě jdoucí čísla určují hodnoty data narození, rodného čísla, výšky a váhy, a je zapotřebí si pamatovat význam jednotlivých indexů.
Můžeme se bavit buď o abstraktních datových strukturách nebo o konkrétních. Abstraktní datová struktura je taková, která je nezávislá na konkrétní implementaci – je definováno její vnější chování, avšak ne konkrétní způsob jakým uvnitř pracuje. Příkladem budiž prioritní fronta – struktura, která podporuje operaci vybrání prvku s nejnižší hodnotou. Nespecifikujeme však už, jak tento prvek nalézt. To lze provést například naivně projítím všech prvků anebo sofistikovaněji s využitím nějaké k tomu navržené konkrétní datové struktury. Konkrétní datová struktura je pak konkrétní implementace dané abstraktní datové struktry (např. implementace prioritní fronty pomocí lineárně spojovaného seznamu či pomocí haldy).
ZÁKLADNÍ OPERACE NAD DATOVÝMI STRUKTURAMI
V anglické literatuře jsou nazývány pojmem CRUD operace (Create, Read, Update, Delete) pro jednotlivé prvky struktury + operace na (de)inicializaci celé datové struktury.Inicializace celé datové struktury (zavedení datové struktury do paměti včetně počátečního nastavení proměnných).
Vložení prvku (angl. push nebo insert).
Vybrání prvku (angl. pop, select nebo find).
Smazání prvku (angl. delete nebo erase).
Změna hodnoty existujícího prvku (angl. update).
Odstranění celé datové struktury (provedení závěrečných operací + samotné odstranění datové strukury z paměti).
U abstraktních datových struktur bývá obvykle definována sémantika jednotlivých operací (tj. jak jednotlivé operace mění danou datovou strukturu a data v ní uložená), u konkrétních implementací jednotlivých datových struktur pak jejich konkrétní provedení (jehož efektivitu pak lze hodnotit například pomocí asymptotické časové složitosti).
Pro každý algoritmický problém se nám může hodit jiná datová struktura, při jejím výběru zvažujeme, které z definovaných operací budeme potřebovat a jak často, díváme se na součet časových složitostí všech jednotlivých použití konkrétních operací, jenž v rámci celého programu využijeme (při použití jiné datové struktury se jejich seznam a počty použití mohou lišit). Zároveň také zvažujeme, jestli se implementace složitejší ale rychlejší datové struktury vyplatí nebo jestli je smysluplnější ušetřit čas programátorovi a nemít tak složitý kód, protože výkon nemusí být vždy klíčový. Zdroj: ksi.fi.muni.cz/ulohy/64
Toto je celý článok, prečítal som ho asi 5x, no veľa som sa z neho nedozvedel.
Mám stejný problém ... Pokud by se mi to povedlo nějak odhadnout a pokud by to tu ještě nebylo, tak to sem pošlu.
Mám to
Napíšu jenom ty, který jsou špatně(navybrané): 2, 5, 14
Doufám, že pomůžu
Zobrazeno 5 zpráv z 5.