[Tutor PyCZ] razeni polozek ve slovniku

Lukas Lisa linux na webaplikace.com
Úterý Březen 21 13:25:30 CET 2006


mockrat diky za podrobne vysvetleni

Petr Prikryl wrote:

>Seznam je datová struktura, ve které existuje jednoznačné
>fyzické uspořádání položek. Pokud mám dvě položky, vždycky
>můžu říct, která je v seznamu dříve a která později.
>
>Slovník (vyhledávací tabulka) je určen k tomu, abych
>na základě klíče co nejrychleji zpřístupnil související
>hodnotu. Výstavba takových struktur prakticky nikdy 
>nedefinuje nějaké pořadí. Pořadí položek může být různé,
>podle toho jak o problému přemýšlím. 
>

>......Pokud
>mám ve slovníku N položek, pak se konkrétní položka vyhledá
>na výrazně méně, než N kroků. U seznamu potřebuji v nejhorším
>případě právě N kroků a průměrně (statisticky) N/2 kroků.
>

mohu tomu rozumet tak, ze pri vyzadani si padesate polozky ze seznamu jsou
projety vsechny polozky od 0 do 50 a ta padesata je vracena
kdezto vyzadam li si polozku s klicem 'pepa' a hodnotou 'zdepa' (jez je
take padesata)
je pouzit nejaky efektivnejsi algoritmus nez je proste projeti celeho
slovniku od prvni do padesate polozky
a tento algoritmus vyzaduje nejake informace (neco jako index u mysql) 
ktere vznikaji pri plneni slovniku
pricemz pri jeho ev sortovani by se musely znova vytvaret...preindexovat?

>Můžu ale vytvořit
>(nebo si u speciálních variant slovníků vnitřně udržovat)
>pomocné datové struktury, které budou zachycovat pořadí
>položek podle mých představ.
>
>  
>
jak by mohla vypadatat takova pomocna datova struktura?

>
>Průchod slovníkem seřazený podle hodnot prakticky
>spočívá v tom, že vytvoříme seznam položek a ten
>seřadíme podle hodnotové části. (V příkladu neuvedeno.)
>
>  
>
cili pri predpokladu ze bych se slovnikem pracoval pouze timto zpusobem je
lepsi pouzit rovnou pole?

s assoc. polema rad pracuji v php ale shledavam ze se od slovniku v
pythonu dost lisi.
assoc. pole jsem pouzival predevsim proto, ze bylo mozne aby jeden
zaznam nesl dve uzitecne
informace (typu string), zatimco v pripade bezneho pole je nutne pouzit
kvuli dvoum
informacim vnorene pole.



Další informace o konferenci Tutor