Next:3.10
To Probe FurtherUp:3.9
Analysis of Skip ListsPrevious:3.9
Analysis of Skip Lists
3.9.1 Analysis of Expected Search
Cost
We analyze the search path backwards, traveling up and to the left. We
pretend as if the level of a node is being determined only when it is observed
while backtracking the search path.
-
1.
-
From level 1, we rise to level L(n)
-
2.
-
We move leftward
-
3.
-
We climb from L(n) to maxLevel.
At a particular point in the climb, we are at the ith
forward pointer of a node x and we have no knowledge about the levels
of nodes to the left of x or about the level of x (other
than that the level of x must be i
). See situation (a) in figure.
-
Assume ``x'' is not the header.
-
If level of x is i, then we are in situation (b).
If level of x is > i, we are in situation (c).
-
Prob{ we are in situation cA} = p
-
Each time we are in situation c, we climb up one level.
Let
C(k) = |
expected length of a search path that |
|
.climbs up k levels in an infinite list. |
Then:
C(0) = |
0 |
C(k) = |
p {cost in situation c } |
|
(1 - p) { cost in situation b } |
We get
C(k) = |
p {1 + C(k - 1)} + (1 - p){1
+ C(k)} |
C(k) = |
+ C(k - 1) |
C(k) = |
|
Our assumption that the list is infinite is pessimistic.
When we bump into the header in our backward climb, we simply climb
it up without performing any leftward (horizontal) movements.
This gives us an upperbound of
On the expected length of a path that climbs up from level 1 to level
L(n)
in a list of n elements. (because L(n) - 1 level are
being climbed).
The rest of the journey includes
-
1.
-
leftward movements, the number of which is bounded by the number of elements
of level L(n)or higher. his has an expected value =
-
2.
-
We also move upwards from level L(n) to the maximum level
in the list.
p { maximum level in the list |
> k} |
|
= 1 - (1 - pk)n |
|
npk |
p { } |
= pk |
p
{ } |
= 1 - pk |
p
{ } |
= (1 - pk)n |
p
{ } |
= 1 - (1 - pk)n |
Expected maximum level |
npk |
Expected maximum level |
L(n)
+ |
Putting our results together, we get:
Total expected cost to climb out of a list on n elements
+
which is O(log n).
We can also compute the probability if the actual cost of a search exceeds
expected cost by more than a specified ratio.
Examples
-
1.
-
p = ;
n = 256
p
{search will take longer than 3 times the expected cost } =
-
2.
-
p = ;
n = 4096
p
{search will take longer than 2 times the expected cost } =
-
3.
-
p = ;
n = 1024
p
{search will take longer than 3 times } =
How do we choose p ?
-
Decreasing p increases variability of running times.
-
p =
; generation of random level can be done from a stream of random bits.
-
Decreasing p decreases # of pointers per node.
-
Overheads are related to L(n) rather than .
-
p =
is probably the best choice, unless variability of running times is an
issue.
Next:3.10
To Probe FurtherUp:3.9
Analysis of Skip ListsPrevious:3.9
Analysis of Skip Lists
eEL,CSA_Dept,IISc,Bangalore