© 2004 Goodrich, Tamassia Skip Lists1 S0S0 S1S1 S2S2 S3S3 103623 15 2315.

Slides:



Advertisements
Similar presentations
David Luebke 1 6/7/2014 CS 332: Algorithms Skip Lists Introduction to Hashing.
Advertisements

© 2004 Goodrich, Tamassia Linked Lists1. © 2004 Goodrich, Tamassia Linked Lists2 Arrays: pluses and minuses + Fast element access. -- Impossible to resize.
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.
The Dictionary ADT: Skip List Implementation
David Luebke 1 6/7/2014 ITCS 6114 Skip Lists Hashing.
Linked Lists Chapter 4.
SKIP LISTS Amihood Amir Incorporationg the slides of Goodrich and Tamassia (2004)
© 2004 Goodrich, Tamassia Node-Lists1 6.2 Node Lists.
Lists1 © 2010 Goodrich, Tamassia. Position ADT The Position ADT models the notion of place within a data structure where a single object is stored It.
© 2004 Goodrich, Tamassia Hash Tables
Skip Lists Present By PAKDEE PATTANAJEDSADA SITTHICHOK SNANSIENG SIWAKORN THAMMAYTHA PATOMPOL TAESUJI
CSC 172 DATA STRUCTURES. SKIP LISTS Read Weiss
© 2004 Goodrich, Tamassia Linked Lists1. © 2004 Goodrich, Tamassia Linked Lists2 Singly Linked List (§ 4.4.1) A singly linked list is a concrete data.
© 2004 Goodrich, Tamassia Hash Tables1  
October 26, 2005Copyright © by Erik D. Demaine and Charles E. LeisersonL11.1 Introduction to Algorithms 6.046J/18.401J LECTURE12 Skip Lists Data.
Expected Running Times and Randomized Algorithms Instructor Neelima Gupta
© 2004 Goodrich, Tamassia Quick-Sort     29  9.
© 2004 Goodrich, Tamassia QuickSort1 Quick-Sort     29  9.
Quick-Sort     29  9.
© 2004 Goodrich, Tamassia Quick-Sort     29  9.
Data Structures Lecture 13 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
© 2004 Goodrich, Tamassia Skip Lists1  S0S0 S1S1 S2S2 S3S3    2315.
CSC401 – Analysis of Algorithms Lecture Notes 7 Multi-way Search Trees and Skip Lists Objectives: Introduce multi-way search trees especially (2,4) trees,
Skip Lists Michael Oudshoorn. CS351 Software Engineering (AY05)2 Skip Lists Binary Search Trees: O(log n) –If, and only if, the tree is “balanced” Insertion.
© 2004 Goodrich, Tamassia Selection1. © 2004 Goodrich, Tamassia Selection2 The Selection Problem Given an integer k and n elements x 1, x 2, …, x n, taken.
Hash Tables1 Part E Hash Tables  
© 2004 Goodrich, Tamassia Merge Sort1 Quick-Sort     29  9.
© 2004 Goodrich, Tamassia (2,4) Trees
Skip Lists1 Skip Lists William Pugh: ” Skip Lists: A Probabilistic Alternative to Balanced Trees ”, 1990  S0S0 S1S1 S2S2 S3S3 
© 2004 Goodrich, Tamassia Linked Lists1. © 2004 Goodrich, Tamassia Linked Lists2 Singly Linked List (§ 4.4.1) A singly linked list is a concrete data.
Introduction To Algorithms CS 445 Discussion Session 2 Instructor: Dr Alon Efrat TA : Pooja Vaswani 02/14/2005.
Skip Lists Mrutyunjay. Introduction ▪ Linked Lists Benefits & Drawbacks: – Benefits: – Easy Insert and Deletes, implementations. – Drawbacks: – Hard to.
CSC Analysis of Algorithms 3-1 CSC401 – Analysis of Algorithms Chapter 3 Search Trees and Skip Lists Objectives: Review binary search trees and present.
Hash Tables1   © 2010 Goodrich, Tamassia.
Maps, Hash Tables, Skip Lists, Sets last Update: Nov 4, 2014 EECS2011: Maps, Hash Tables, Skip Lists, Sets1.
© 2004 Goodrich, Tamassia Hash Tables1  
Skip Lists 二○一七年四月二十五日
© 2014 Goodrich, Tamassia, Goldwasser Singly Linked Lists1 Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition,
© 2004 Goodrich, Tamassia Quick-Sort     29  9.
CHAPTER 9 HASH TABLES, MAPS, AND SKIP LISTS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++,
Instructor Neelima Gupta Expected Running Times and Randomized Algorithms Instructor Neelima Gupta
CSCE 3110 Data Structures & Algorithm Analysis Rada Mihalcea Dictionaries. Reading Weiss Chap. 5, Sec
2/19/2016 3:18 PMSkip Lists1  S0S0 S1S1 S2S2 S3S3    2315.
Towers of Hanoi Move n (4) disks from pole A to pole B such that a larger disk is never put on a smaller disk A BC ABC.
Skip Lists – Why? BSTs –Worse case insertion, search O(n) –Best case insertion, search O(log n) –Where your run fits in O(n) – O(log n) depends on the.
Chapter 11 Sorting Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and Mount.
Maps 1/28/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Skip Lists S3   S2   S1   S0  
Sorted Maps © 2014 Goodrich, Tamassia, Goldwasser Skip Lists.
Skip Lists 5/10/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M.
Searching an Array: Binary Search
Quick-Sort 9/12/2018 3:26 PM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia,
Dictionaries 9/14/ :35 AM Hash Tables   4
Skip Lists S3 + - S2 + - S1 + - S0 + -
Skip Lists.
Skip Lists S3 + - S2 + - S1 + - S0 + -
Skip Lists S3 + - S2 + - S1 + - S0 + -
Sorted Maps © 2014 Goodrich, Tamassia, Goldwasser Skip Lists.
Dictionaries < > = /3/2018 8:58 AM Dictionaries
CH 9.2 : Hash Tables Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and.
Dictionaries 1/17/2019 7:55 AM Hash Tables   4
CH 9.2 : Hash Tables Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and.
Parasol Lab, Dept. CSE, Texas A&M University
Quick-Sort 2/25/2019 2:22 AM Quick-Sort     2
Copyright © Aiman Hanna All rights reserved
Quick-Sort 4/8/ :20 AM Quick-Sort     2 9  9
Skip List: formally 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.
Quick-Sort 4/25/2019 8:10 AM Quick-Sort     2
Maps 4/25/2019 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
CS210- Lecture 17 July 12, 2005 Agenda Collision Handling
Presentation transcript:

© 2004 Goodrich, Tamassia Skip Lists1 S0S0 S1S1 S2S2 S3S

© 2004 Goodrich, Tamassia Skip Lists2 What is a Skip List A skip list for a set S of distinct (key, element) items is a series of lists S 0, S 1, …, S h such that Each list S i contains the special keys and List S 0 contains the keys of S in nondecreasing order Each list is a subsequence of the previous one, i.e., S 0 S 1 … S h List S h contains only the two special keys We show how to use a skip list to implement the dictionary ADT S0S0 S1S1 S2S2 S3S3

© 2004 Goodrich, Tamassia Skip Lists3 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(next(p)) x y : we return element(next(p)) x y : we scan forward x y : we drop down If we try to drop down past the bottom list, we return null Example: search for 78 S0S0 S1S1 S2S2 S3S

© 2004 Goodrich, Tamassia Skip Lists4 Randomized Algorithms A randomized algorithm performs coin tosses (i.e., uses random bits) to control its execution It contains statements of the type b random() if b 0 do A … else { b 1} do B … Its running time depends on the outcomes of the coin tosses We analyze the expected running time of a randomized algorithm under the following assumptions the coins are unbiased, and the coin tosses are independent The worst-case running time of a randomized algorithm is often large but has very low probability (e.g., it occurs when all the coin tosses give heads) We use a randomized algorithm to insert items into a skip list

© 2004 Goodrich, Tamassia Skip Lists5 To insert an entry (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 S h 1, …, S i 1, each containing only the two special keys We search for x in the skip list and find the positions p 0, p 1, …, p i of the items with largest key less than x in each list S 0, S 1, …, S i For j 0, …, i, we insert item (x, o) into list S j after position p j Example: insert key 15, with i 2 Insertion S0S0 S1S1 S2S2 S0S0 S1S1 S2S2 S3S p0p0 p1p1 p2p2

© 2004 Goodrich, Tamassia Skip Lists6 Deletion To remove an entry with key x from a skip list, we proceed as follows: We search for x in the skip list and find the positions p 0, p 1, …, p i of the items with key x, where position p j is in list S j We remove positions p 0, p 1, …, p i from the lists S 0, S 1, …, S i We remove all but one list containing only the two special keys Example: remove key S0S0 S1S1 S2S2 S0S0 S1S1 S2S2 S3S p0p0 p1p1 p2p2

© 2004 Goodrich, Tamassia Skip Lists7 Implementation We can implement a skip list with quad-nodes A quad-node stores: entry link to the node prev link to the node next link to the node below link to the node above Also, we define special keys PLUS_INF and MINUS_INF, and we modify the key comparator to handle them x quad-node

© 2004 Goodrich, Tamassia Skip Lists8 Space Usage The space used by a skip list depends on the random bits used by each invocation of the insertion algorithm We use the following two basic probabilistic facts: Fact 1: The probability of getting i consecutive heads when flipping a coin is 1 2 i Fact 2: If each of n entries is present in a set with probability p, the expected size of the set is np Consider a skip list with n entries By Fact 1, we insert an entry in list S i with probability 1 2 i By Fact 2, the expected size of list S i is n 2 i The expected number of nodes used by the skip list is Thus, the expected space usage of a skip list with n items is O(n)

© 2004 Goodrich, Tamassia Skip Lists9 Height The running time of the search an insertion algorithms is affected by the height h of the skip list We show that with high probability, a skip list with n items has height O(log n) We use the following additional probabilistic fact: Fact 3: If each of n events has probability p, the probability that at least one event occurs is at most np Consider a skip list with n entires By Fact 1, we insert an entry in list S i with probability 1 2 i By Fact 3, the probability that list S i has at least one item is at most n 2 i By picking i 3log n, we have that the probability that S 3log n has at least one entry is at most n 2 3log n n n 3 1 n 2 Thus a skip list with n entries has height at most 3log n with probability at least 1 1 n 2

© 2004 Goodrich, Tamassia Skip Lists10 Search and Update Times The search time in a skip list is proportional to the number of drop-down steps, plus the number of scan-forward steps The drop-down steps are bounded by the height of the skip list and thus are O(log n) with high probability To analyze the scan-forward steps, we use yet another probabilistic fact: Fact 4: The expected number of coin tosses required in order to get tails is 2 When we scan forward in a list, the destination key does not belong to a higher list A scan-forward step is associated with a former coin toss that gave tails By Fact 4, in each list the expected number of scan- forward steps is 2 Thus, the expected number of scan-forward steps is O(log n) We conclude that a search in a skip list takes O(log n) expected time The analysis of insertion and deletion gives similar results

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