Data Structures Flashcards
Co je ram - vysvětli, adress
Data, se kterými aktuálně pracuju jsou uloženy v ramce. Mají svou adress, ta má 8 bitů (tj jeden byte). Random acces memory- muže na kteroukoli adress přímo, nemusí jít napr. 1,2,3,…100 aby se dostal na 100. Pro CPU je rychlejší pokud hledá v ram adresy blízko u sebe. Pro optimalizaci slouží cpu cache, která ukládá naposledy navštívený věci.
Vyjmenuj typy akcí s datovými strukturami
Insertion, deletion, traversal, searching, sorting, access
Array - co to je? Jaký znáš dva typy?
Je to objekt , který má integer based keys, that act like indexes. Jsou skvělý pokud potrebuju uložit nějaký data in order and over it one by one. Jsou static, napr v c++, low level language. Fixid in size, musíš specifikovat počet elelmentu that array will hold. Nebo jsou dynamic, mužů přidávat elementy podle potřeby.
Static jsou obecně rychlejší, pokud ale potrebuju rozšířit -> O(n), musí vykopirovat celej array na nový místo v memory a přidat nový položky.
Array - pop a unshift - jaký je Big O?
Pokud dělám něco na posledním elementu v array - O1, pokud na prvním, nebo třeba uprostřed (splice), je to ON, protože musí změnit indexu u všech následujících položek.
Strings - jak k nim přistupovat u interview, napr reverse a string?
Přistupovat stejně jako k otázkám o array. Strings jsou v podstatě array of characters. Takže z ni pomoci split() uděláš array a pak reversneš array.
Const reverse = str => str.spli(‘’).reverse().join(‘’)