Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos – p.1/33
Skip Lists
Algoritmos – p.1/33
Skip Lists
Objetivo:
tornar a busca em uma lista ligada ordenada mais eficiente.
Algoritmos – p.1/33
Skip Lists
Objetivo:
tornar a busca em uma lista ligada ordenada mais eficiente.
Algoritmos – p.1/33
De onde elas vêm?
Uma lista ligada:
Algoritmos – p.2/33
De onde elas vêm?
Uma lista ligada:
Uma extensão:
Algoritmos – p.2/33
De onde elas vêm?
Uma lista ligada:
Algoritmos – p.2/33
De onde elas vêm?
Uma lista ligada:
Resultado:
Lista ordenada com busca, inserção e remoção
em tempo esperado O(lg n).
Algoritmos – p.2/33
Skip Lists
Algoritmos – p.3/33
Skip Lists
Algoritmos – p.3/33
Skip Lists
Algoritmos – p.4/33
Skip Lists
Algoritmos – p.4/33
Skip Lists
N ÍVEL -A LEATÓRIO ()
1 t ← RAND() número aleatório em [0 . . 1)
2 i←0
3 j←1 j = 2i
4 enquanto i < lgNmax e t ≤ 1/j faça
5 j ← 2j
6 i←i+1
7 se i > lgN
8 então lgN ← i
9 devolva i
Algoritmos – p.5/33
Busca numa skip list
B USCA (r, x)
1 devolva BUSCA -N ÍVEL (r, r, x, lgN)
Algoritmos – p.6/33
Busca numa skip list
B USCA (r, x)
1 devolva BUSCA -N ÍVEL (r, r, x, lgN)
Algoritmos – p.7/33
Inserção numa skip list
I NSERE (r, x)
1 I NSERE -N ÍVEL (r, NOVACEL (x, N ÍVEL -A LEATÓRIO ()), lgN)
2 N ←N +1
Algoritmos – p.7/33
Exercícios
1. Escreva o R EMOVE (r, x), que remove de uma skip list
apontada por r a célula cujo conteúdo é x.
Algoritmos – p.8/33
Exercícios
1. Escreva o R EMOVE (r, x), que remove de uma skip list
apontada por r a célula cujo conteúdo é x.
Algoritmos – p.8/33
Exercícios
1. Escreva o R EMOVE (r, x), que remove de uma skip list
apontada por r a célula cujo conteúdo é x.
Algoritmos – p.8/33
Exercícios
1. Escreva o R EMOVE (r, x), que remove de uma skip list
apontada por r a célula cujo conteúdo é x.
Algoritmos – p.8/33
Exercícios
1. Escreva o R EMOVE (r, x), que remove de uma skip list
apontada por r a célula cujo conteúdo é x.
Algoritmos – p.8/33