Diskuze: Výběr vhodné kolekce
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
I do pole s velikostí ulong.MaxValue by se vešlo jenom 20 předmětů (v nejhorším případě).
No to by mě teda zajímalo, co je to za předměty a jak je ukládáš.
Ukladam normalne treba cisla.
Delka pole by mela byt predbezne N! (mozna bych to mohl srazit, ale i tak se mi to nezda jako spravny typ kolekce)
http://m.wolframalpha.com/input/?…
(je to videt v grafu)
To se mi zdá jako silně neoptimalizovaná věc, která se skutečně nedá řešit takto. Co je to ten "předmět" proč potřebuješ na N předmětů pole o velikosti N! ?
Vím že je to neoptimalizované, proto nechci používat pole. Například List s Insert by měl velikost pouze N, ale abych to mohl udělat bez insertu (tedy pole), potřebuji N!. Proto hledám kolekci, která mi umožní rychle (což list rychle nedokáže, pokud se nepletu) insertovat prvky na index.
Nejsem si jistý, jak bych to použil.
Mám několik čísel. Mám kolekci (třeba Dictionary), ve které mám 1 číslo ("základní číslo").
Atd...
Nevím, jak to v Dictionary udělat. Takhle potřebuji rozřadit čísla, aby přesně držely pozici.
Tak to ne no. Tak LinkedList. Pokud chceš tahle vkládat libovolně před nebo za prvky, a přitom udržet jejich pozici, tak neznám nic jiného než spojový seznam.
Pokud budeš mít hodně prvků, tak vkládání do LinkedListu může být pomalé O(n). Lze to urychlit tak, že by jsi použil datovou strukturu Skiplist. Tím snížíš složitost vkládání na O(log n) a v nejhorším případě O(n).
Zobrazeno 9 zpráv z 9.