0% found this document useful (0 votes)
26 views16 pages

ABIDA

The document summarizes skip lists, a probabilistic data structure that can be used to implement a dictionary abstract data type. Skip lists organize data into multiple sorted lists of increasing length, allowing searches, insertions and deletions to take expected O(log n) time. They use randomization to determine the length of each list, resulting in space usage of O(n) and height of O(log n) with high probability. Operations work by searching or updating node positions across each list.

Uploaded by

ashu21doll
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views16 pages

ABIDA

The document summarizes skip lists, a probabilistic data structure that can be used to implement a dictionary abstract data type. Skip lists organize data into multiple sorted lists of increasing length, allowing searches, insertions and deletions to take expected O(log n) time. They use randomization to determine the length of each list, resulting in space usage of O(n) and height of O(log n) with high probability. Operations work by searching or updating node positions across each list.

Uploaded by

ashu21doll
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

NAME:ABIDA NAWAZ

PROJECT PRESENTATION: SKIP LIST


SUBMITTED TO: PROF. RABIA
Skip Lists
Outline and Reading

 What is a skip list (§9.4)


 Operations (§9.4.1)
 Search
 Insertion
 Deletion
 Implementation
 Analysis (§9.4.2)
 Space usage
 Search and update times
What is a Skip List

 A skip list for a set S of distinct (key, element) items is a series of lists
S0, S1 , … , Sh such that
 Each list Si contains the special keys + and -
 List S0 contains the keys of S in non-decreasing order
 Each list is a subsequence of the previous one, i.e.,
S0  S1  …  Sh
 List Sh contains only the two special keys
 Skip lists are one way to implement the dictionary ADT
 Java applet
S3  
S2  31 
S1  23 31 34 64 
S0  12 23 26 31 34 44 56 64 78 
Implementation

 We can implement a skip list


with quad-nodes
 A quad-node stores: quad-node
 item
 link to the node before


link to the node after
link to the node below
x
 Also, we define special keys
PLUS_INF and MINUS_INF,
and we modify the key
comparator to handle them
Search
 We search for a key x in a a skip list as follows:
 We start at the first position of the top list
 At the current position p, we compare x with y  key(after(p))
x = y: we return element(after(p))
x > y: we “scan forward”
x < y: we “drop down”
 If we try to drop down past the bottom list, we return
NO_SUCH_KEY
S3  
S2  31 
S1  23 31 34 64 
S0  12 23 26 31 34 44 56 64 78 
 We search for a key x in a a skip list as follows:
 We start at the first position of theExercise: Search
top list
 At the current position p, we compare x with y  key(after(p))
x = y: we return element(after(p))
x > y: we “scan forward”
x < y: we “drop down”
 If we try to drop down past the bottom list, we return NO_SUCH_KEY
 Ex 1: search for 64: list the (Si, node) pairs visited and the return value
 Ex 2: search for 27: list the (Si, node) pairs visited and the return value

S3  
S2  31 
S1  23 31 34 64 
S0  12 23 26 31 34 44 56 64 78 
Insertion

 To insert an item (x, o) into a skip list, we use a randomized algorithm:


 We repeatedly toss a coin until we get tails, and we denote
with i the number of times the coin came up heads
 If i  h, we add to the skip list new lists Sh+1, … , Si +1, each
containing only the two special keys
 We search for x in the skip list and find the positions p0, p1 , …,
pi of the items with largest key less than x in each list S0, S1, … ,
Si
 For j  0, …, i, we insert item (x, o) into list Sj after position pj
 Example: insert key 15, with i = 2 S3  
p2
S2   S2  15 
p1
S1  23  S1  15 23 
p0
S0  10 23 36  S0  10 15 23 36 
Deletion
 To remove an item with key x from a skip list, we proceed as follows:
 We search for x in the skip list and find the positions p0, p1 , …, pi of the
items with key x, where position pj is in list Sj
 We remove positions p0, p1 , …, pi from the lists S0, S1, … , Si
 We remove all but one list containing only the two special keys
 Example: remove key 34

S3  
p2
S2  34  S2  
p1
S1  23 34  S1  23 
p0
S0  12 23 34 45  S0  12 23 45 
Randomized Algorithms
 Through probabilistic analysis we can
 A randomized algorithm controls its
derive the expected running time of a
execution through random selection (e.g.,
randomized algorithm
coin tosses)
 We make the following assumptions in the
 It contains statements like:
analysis:
 b  randomBit()  the coins are unbiased
 if b = 0  the coin tosses are independent
 The worst-case running time of a
 do A … randomized algorithm is often large but
 else { b = 1} has very low probability (e.g., it occurs
when all the coin tosses give “heads”)
 do B …  We use a randomized algorithm to insert
 Its running time depends on the outcomes items into a skip list to insert in expected
of the coin tosses
O(log n)-time
 When randomization is used in data
structures they are referred to as
probabilistic data structures
Space Usage

 Consider a skip list with n items


 The space used by a skip list depends on
the random bits used by each invocation  By Fact 1, we insert an
of the insertion algorithm
 We use the following two basic
item in list Si with
probabilistic facts: probability 1/2i
 Fact 1: The probability of getting i
consecutive heads when flipping a
 By Fact 2, the expected size
coin is 1/2i of list Si is n/2i
 Fact 2: If each of n items is present in  The expected number of nodes used by
a set with probability p, the expected the skip list is
size of the set is np h h
n 1
 2i  2i  2n
 n
i 0 i 0

 Thus, the expected space usage of a


skip list with n items is O(n)
Height

 The running time of the search an  Consider a skip list with n items
insertion algorithms is affected by the  By Fact 1, we insert an item in list Si
height h of the skip list
with probability 1/2i
 We show that with high probability, a
 By Fact 3, the probability that list S
skip list with n items has height O(log n) i
 We use the following additional has at least one item is at most n/2i
probabilistic fact:  By picking i = 3log n, we have that the
 Fact 3: If each of n events probability that S3log n has at least one
item is
has probability p, the at most
probability that at least n/23log n = n/n3 = 1/n2
one event occurs is at most  Thus a skip list with n items has height
np at most 3log n with probability at least 1
- 1/n2
Search and Update Times

 The search time in a skip list  When we scan forward in a list, the
is proportional to destination key does not belong to a
higher list
 the number of drop-down steps, plus
 A scan-forward step is associated with
 the number of scan-forward steps a former coin toss that gave tails
 The drop-down steps are  By Fact 4, in each list the expected
bounded by the height of the number of scan-forward steps is 2
skip list and thus are O(log n)  Thus, the expected number of scan-
with high probability forward steps is O(log n)
 We conclude that a search in a skip
 To analyze the scan-forward
list takes O(log n) expected time
steps, we use yet another  The analysis of insertion and deletion
probabilistic fact: gives similar results
 Fact 4: The expected number of coin
tosses required in order to get tails is
2
Exercise
 You are working for ObscureDictionaries.com a new online start-up which specializes in sci-
fi languages. The CEO wants your team to describe a data structure which will efficiently
allow for searching, inserting, and deleting new entries. You believe a skip list is a good
idea, but need to convince the CEO. Perform the following:
 Illustrate insertion of “X-wing” into this skip list. Randomly
generated (1, 1, 1, 0).
 Illustrate deletion of an incorrect entry “Enterprise”

S2  

S1  Enterprise 

S0  Boba Fett Enterprise Yoda 


Summary
 A skip list is a data structure for dictionaries  Using a more complex probabilistic
that uses a randomized insertion algorithm analysis, one can show that these
 In a skip list with n items performance bounds also hold with high
 The expected space used is probability
 Skip lists are fast and simple to implement
O(n)
in practice
 The expected search,
insertion and deletion time is
O(log n)

You might also like