Você está na página 1de 13

EDPA

2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List Skip List


Conceitos
Operaes
Espao
Concluso
Paulo Victor dos Santos
Marcelo Silva Braga

Instituto de Informtica

Universidade Federal de Gois

Ps-Graduao em Cincia da Computao, 2016


Estruturas de Dados e Projeto de Algoritmos
Prof. Humberto Longo
EDPA

Conceitos
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List Skip List uma estrutura de dados que pode ser utilizada no lugar das rvores
Conceitos
Operaes balanceadas. Usam balanceamento probabilstico e baseado em listas
Espao
Concluso encadeadas paralelas com ecincia comparada na ordem de O(ln(n)) para
maioria das operaes. Uma das mais recentes Estrutura de Dados e foi
descoberta em 1989 por William Pugh.

Figura: Estrutura de uma Skip List


EDPA

Conceitos
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga
Intuitivamente, Skip list constituda horizontalmente em nveis e
Skip List
Conceitos verticalmente em torres e tem a propriedade de manter os dados ordenados.
Operaes
Espao A lista S0 contm todos os itens na base e as listas S1 , ..., Sh acima dela,
Concluso
contm um subconjunto gerado aleatoriamente dos itens da lista Si1 .
Tambm se indica h como a altura da Skip List.
EDPA

Conceitos
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso
As listas so arquitetadas de forma que Si+1 contenha probabilisticamente um
de cada dois itens de Si , ou seja, os itens de Si+1 so escolhidos aleatoriamente
dentre os itens de Si com a probabilidade de 1/2, assim espera-se que:
S0 tenha n itens.
S1 tenha aproximadamente n
2 itens.
S2 tenha aproximadamente n
4 itens.
S3 tenha aproximadamente n
8 itens.

Assim temos que, Si ter n


2i itens. Mantendo a altura h de S em log n.
EDPA

Operaes
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso
As posies em uma Skip List podem ser percorridas usando as seguintes
operaes:
after(p): retorna a posio seguinte a p no mesmo nvel.
before(p): retorna a posio anterior a p no mesmo nvel.
below(p): retorna a posio abaixo de p na mesma torre.
above(p): retorna a posio acima de p na mesma torre.
A Skip List pode ser implementada usando lista encadeada de tal forma que as
funes acima custem tempo O (1).
EDPA

Pesquisa
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga
Todos algoritmos de pesquisa so baseados na funo SkipSearch.
Skip List
Conceitos SkipSearch(k)
Operaes
Espao Enquanto below(p) 6= null faa
Concluso
p below(p)
Enquanto key(after(p)) k faa
p after(p)
Retorne p

Figura: Exemplo de busca pelo valor 78


EDPA

Insero
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List Insero em uma Skip List uma extenso do mtodo SkipSearch. A nica
Conceitos
Operaes
Espao
diferena que durante a pesquisa o caminho salvo para que cada nvel do
Concluso novo item possa ser vinculado corretamente, ou seja, uma insero repetitiva
em uma listas encadeadas ordenadas separadamente.

Figura: Insero do valor 42


EDPA

Insero
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso Quando um novo elemento adicionado a um Skip List, o nivel do n gerado
aleatoriamente pelo mtodo RadomLevel.

Supor p= 0,5; random = 0 (cria), random = 1 (no cria).


MaxLevel determina a altura maxima que o elemento pode alcanar.
RadomLevel()
lvl 1
Enquanto random() < p e lvl < MaxLevel faa
lvl lvl + 1
Retorne lvl
EDPA

Remoo
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes Remoo comea pela execuo do SkipSearch que retorna p e remove p e
Espao
Concluso todas as posies acima de p.

Figura: Remoo do valor 42


EDPA

Limite Superior
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso

Skip List tm duas polticas para tratar qualquer operao que queira inserir
um item acima do nvel superior de S :
Restringir o nvel superior h, mantendo um nmero xo em funo de n.
Permitir que haja insero e ir crescendo os nveis de h.
EDPA

Espao
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso

A necessidade de espao de uma Skip List S o nmero de itens esperado no


nvel i, ou seja, n
2i
.
Temos:
h h
n 1
2n.
X X
=n
i=0
2i i=0
2i
EDPA

Concluso
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Skip List
Conceitos
Operaes
Espao
Concluso

"Skip List uma estrutura de dados muito simples e com a mesma ecincia
assinttica de das complexas rvores binrias. As rvores de busca so
necessitam de mais recurso para manter o balanceamento enquanto que na
Skip List no existe este custo, tornando mais rpidas nas operaes bsicas"
EDPA

Livros Texto I
2016/2

Paulo Victor
dos Santos
Marcelo
Silva Braga

Apndice
Bibliograa
Michel T. GoodRich, Roberto Tamassia

Projeto de Algoritmos.

Bookman Companhia Ed, 2004.

Michel T. GoodRich, Roberto Tamassia

Estrutura de Dados e Algoritmos em Java.

Bookman Companhia Ed, 4


a Edio, 2007.

Michel T. GoodRich, Roberto Tamassia

Estrutura de Dados e Algoritmos em Java.

Bookman Companhia Ed, 5


a Edio, 2013.

William Pugh

A Skip List Cookbook.

1990.

William Pugh

Skip Lists: A Probabilistic Alternative to Balanced Trees.

Communications of the ACM, 1990.

Você também pode gostar