skip list n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Skip-List PowerPoint Presentation
Download Presentation
Skip-List

Loading in 2 Seconds...

play fullscreen
1 / 15

Skip-List - PowerPoint PPT Presentation


  • 155 Views
  • Updated on

Skip-List. je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura jednotlivých uzlů se volí náhodně) Na rozdíl od stromů má skip list následující výhody: jednoduchá implementace

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Skip-List


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Skip-List • je datová struktura, která může být použita jako náhrada za vyvážené stromy. • představují pravděpodobnostní alternativu k vyváženým stromům (struktura jednotlivých uzlů se volí náhodně) • Na rozdíl od stromů má skip list následující výhody: • jednoduchá implementace • jednoduché algoritmy vložení/zrušení • časová složitost vyhledávání je obdobná jako u stromů

    2. Základní myšlenka zavedení skip-listů

    3. Skip-List • prky v seznamu jsou uspořádány • seznam obsahuje prvky, které majíkukazatelů 1 ≤ k ≤ max_level • uzel s k-ukazateli se nazývá uzel úrovně k • seznam úrovně k – obsahuje prvky s maximálně k ukazateli • ideální skip-list – každý 2i-tý prvek má ukazatel, který ukazuje o 2i prvků dopředu

    4. NULL 17 7 3 9 2 5 8 11 21 • Pokud má každý 2itý uzel 2i ukazatelů na následující uzly, pak jsou uzly jednotlivých úrovní rozloženy následovně: • 50% uzlů úrovně 1 • 25% uzlů úrovně2 • 12.5% uzlů úrovně3 • atd. • Výhoda: složitost vyhledávání O(log n) • Nevýhoda: po provedení operací insert/delete je nutné • provádět restrukturalizaci seznamu • Řešení: ponechat rozložení uzlů ale vyhnout se restrukturalizaci – tj. • uzly úrovně k jsou vkládány náhodně s uvedeným • pravděpodobnostním rozložením

    5. MaxLevel 15 ukazatele na další prvky forward[i] 1 Klíč + data Prvek Skip-listu • každý prvek seznamu úrovně k má kukazatelů (k se volí náhodně při vytvoření prvku ) Inicializace seznamu Prázdný seznam • je vytvořena hlavička seznamu • (obsahuje MaxLevel ukazatelů) • všechny ukazatele se inicializují na • NIL • celkový počet úrovní MaxLevel se volí na • základě maximálního počtu prvků N • MaxLevel=log2(N) NULL header

    6. Vyhledávání • Začínáme v nejvyšší úrovni • Dokud je hledaný prvek větší než prvek na který ukazuje ukazatel, • posouváme se vpřed v dané úrovni . • Pokud je hledaný prvek menší než následující klíč, • přesuneme se o jednu úroveň níž. • Opakujeme postup pokud není prvek nalezen, nebo pokud není jisté(v úrovni 1), že prvek neexistuje. • Časová složitost • nejlepší/průměrnýpřípad : logaritmický • nejhorší případ : lineární(skip list přechází v normální spojový seznam)

    7. Algoritmus vyhledávání

    8. Vložení prvku 17 Level 2 1 0 3 3 9 12 18 29 35 37 40 • Vyhledávacím algoritmem nalezněte pozici pro vložení prvku • zapamatujte pozici předchůdce • Zvolte úroveň nově vkládaného uzlu • Vložte nový uzel a pokud je to nutné zvětšete hodnotu MaxLevel

    9. Vložení prvku • Vyhledávacím algoritmem nalezněte pozici pro vložení prvku • zapamatujte pozici předchůdce • Zvolte úroveň nově vkládaného uzlu • Vložte nový uzel a pokud je to nutné zvětšete hodnotu MaxLevel 17 Level 2 1 0 3 3 9 12 18 29 35 37 40

    10. Vložení prvku • Vyhledávacím algoritmem nalezněte pozici pro vložení prvku • zapamatujte pozici předchůdce • Zvolte úroveň nově vkládaného uzlu • Vložte nový uzel a pokud je to nutné zvětšete hodnotu MaxLevel 17 Level 2 1 0 3 3 9 12 18 29 35 37 40

    11. Vložení prvku • Vyhledávacím algoritmem nalezněte pozici pro vložení prvku • zapamatujte pozici předchůdce • Zvolte úroveň nově vkládaného uzlu • Vložte nový uzel a pokud je to nutné zvětšete hodnotu MaxLevel 17 Level 2 1 0 3 3 9 12 18 29 35 37 40

    12. Vložení prvku 17 Level 2 1 0 3 3 9 12 18 29 35 37 40 • Vyhledávacím algoritmem nalezněte pozici pro vložení prvku • zapamatujte pozici předchůdce • Zvolte úroveň nově vkládaného uzlu • Vložte nový uzel a pokud je to nutné zvětšete hodnotu MaxLevel

    13. Volba náhodné úrovně Algoritmus vložení prvku

    14. Zrušení prvku • Vyhledávacím algoritmem nalezněte pozici pro zrušení prvku • zapamatujte pozici předchůdce • Zrušte uzel, je-li to nutné zmenšete MaxLevel.

    15. Porovnání s ostatními datovými strukturami