ptans 1 Flashcards

(26 cards)

1
Q

Co jsou datové struktury s dynamickým přidělováním paměti?

A

Dynamicky rostoucí pole, lineární seznam, hash tabulka, binární strom

Tyto struktury se vyznačují tím, že se jejich velikost může během provádění programu měnit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jaký je rozdíl mezi časovou a prostorovou složitostí?

A

Časová složitost = jak dlouho algoritmus poběží v závislosti na velikosti vstupních dat; Prostorová složitost = kolik paměti je potřeba k vykonání algoritmu v závislosti na velikosti vstupních dat

Obě složitosti jsou klíčové pro analýzu efektivity algoritmů.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co znamená asymptotická složitost?

A

Udává funkci, jak bude narůstat výpočetní složitost v závislosti na velikosti vstupních dat

Asymptotická složitost se často vyjadřuje pomocí Big O Notation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co vyjadřuje časová složitost O(n)?

A

Doba trvání práce algoritmu se zvýší přibližně tolikrát, kolikrát se zvýší velikost vstupu

O(n) představuje lineární časovou složitost.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co znamená složitost O(n^2)?

A

Doba trvání průběhu se zvyšuje kvadraticky, pokud se zvýší délka vstupu dvakrát, potřebný čas se zvýší čtyřikrát

O(n^2) je typická pro primitivní třídící algoritmy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jaké jsou základní asymptotické třídy?

A
  • Θ(1) = konstantní
  • Θ(log n) = logaritmický růst
  • Θ(n*log n) = chytré sort algoritmy
  • Θ(n) = lineární růst
  • Θ(n^2) = kvadratický růst
  • Θ(n^3) = kubický růst
  • Θ(n^k) = polynomiální růst
  • Θ(n!) = faktoriální růst

Tyto třídy pomáhají kategorizovat různé algoritmy podle jejich složitosti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jak funguje dynamicky rostoucí pole?

A

Umožňuje přidávat libovolný počet prvků; při vyčerpání kapacity alokuje větší pole a kopíruje prvky

Chování se opakuje, když je pole příliš prázdné.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jaká je časová složitost vkládání prvku do dynamického pole?

A

Θ(n)

Vkládání je nákladné, pokud je potřeba alokovat nové pole.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jaká je časová složitost vyhledání jednoho prvku v dynamickém poli?

A

Θ(1)

Vyhledání je efektivní, protože se provádí pomocí indexu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jaká je časová složitost smazání jednoho prvku v dynamickém poli?

A

Závisí na implementaci: Θ(1) nebo Θ(n)

Záleží na tom, zda se prvky přesouvají nebo se pouze mění místo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jaká metoda se používá pro rychlé řazení prvků v dynamickém poli?

A

Quick sort

Quick sort je efektivní třídící algoritmus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jaký je princip lineárního seznamu?

A

Všechny prvky mají ukazatel na následující položku, nemusí být v paměti lineárně uspořádány

Může být jednosměrný nebo obousměrný.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jaká je časová složitost vkládání prvku do lineárního seznamu?

A

Θ(1) na začátku a konci, Θ(n) doprostřed

Vkládání na začátek nebo konec je rychlé, ale uprostřed vyžaduje vyhledání.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jaká je časová složitost vyhledání jednoho prvku v lineárním seznamu?

A

Θ(n)

Vyhledání vyžaduje procházení seznamu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jaká je časová složitost smazání jednoho prvku v lineárním seznamu?

A

Θ(n) + Θ(1)

Zahrnuje vyhledání a samotné mazání.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jaká metoda se používá pro rychlé řazení prvků v lineárním seznamu?

A

Merge sort

Merge sort je efektivní třídící algoritmus pro seznamy.

17
Q

Co je hash tabulka?

A

Vyhledávací datová struktura typu key-value, kombinuje výhody indexovaného vyhledávání a lineárního seznamu

Používá hašovací funkci pro přiřazení klíče k indexu.

18
Q

Jaká je časová složitost vkládání prvku do hash tabulky?

A

Průměrně Θ(1), v nejhorším případě Θ(n)

V nejhorším případě může dojít ke kolizím.

19
Q

Jaká je časová složitost vyhledání jednoho prvku v hash tabulce?

A

Průměrně Θ(1), v nejhorším případě Θ(n)

Vyhledání je rychlé díky indexaci.

20
Q

Jaká je časová složitost smazání jednoho prvku v hash tabulce?

A

Průměrně Θ(1), v nejhorším případě Θ(n)

Podobně jako u vyhledání, smazání může být ovlivněno kolizemi.

21
Q

Jaká metoda se používá pro rychlé řazení prvků v hash tabulce?

A

Nelze ji řadit, pořadí určuje hash funkce

Pro seřazenou tabulku lze použít SortedDictionary.

22
Q

Jaký je princip binárního stromu?

A

Každý prvek má nejvíc jednoho předchůdce a může mít více následníků; levý podstrom obsahuje menší prvky, pravý větší

Binární stromy jsou často používané v informatice.

23
Q

Jaká je časová složitost vkládání prvku do binárního stromu?

A

Průměrně Θ(log n), v nejhorším případě Θ(n)

V nejhorším případě může být strom nevyvážený.

24
Q

Jaká je časová složitost vyhledání jednoho prvku v binárním stromu?

A

Průměrně Θ(log n), v nejhorším případě Θ(n)

Vyhledání je efektivní v dobře vyvážených stromech.

25
Jaká je časová složitost smazání jednoho prvku v binárním stromu?
Průměrně Θ(log n), v nejhorším případě Θ(n) ## Footnote Smazání může být složité v závislosti na struktuře stromu.
26
Jaká metoda se používá pro rychlé řazení prvků v binárním stromu?
Tree sort algoritmus ## Footnote Tree sort využívá strukturu binárního stromu pro efektivní řazení.