# HASH TABLES.

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 1 HASH TABLES

2 2 Hash Table A hash table (or hash map) is a data structure that maps keys (identifiers) into a certain location (bucket) A hash function changes the key into an index value (or hash value)

3 3 Hash Tables The Hash Table has a fixed length. We'll see how to add space dynamically later. Keys Ryan, D Williams, C Khoja, S hash(ryan, D) = 01 hash(williams, C) = 06 hash(khoja, S) = 03 Hash Function Bucket Data 01 Ryan, D Khoja, S Williams, C 07

4 4 A Problem We want to create a fast dictionary that we can use to look up the definition of 2-letter words (e.g. on, to, so, no). The number of possible words is 26 * 26 = 676. Create an array with 676 entries. Write a function to map each 2-letter word to a unique integer number within the array range [0, 675]. Use the integer as an index to the array, and place the definition of the word into that array position.

5 5 A Solution no 0 Function: 26 * ( c 1 a ) + ( c 2 a ) on to 352 def no Result for no : 26 * ( n a ) + ( o a ) = 377 def on 26 * ( 14 1 ) + ( 15 1 ) = 352 Result for on = def to Result for to =

6 6 Another Problem Q. How big would the hash table be if we wanted to store every word in the English language? Keep in mind that the longest word in the dictionary has 45 letters. The longest word in the dictionary is pneumonoultramicroscopicsilicovolcanoconioisis and it s a type of lung disease. The size of the table needed to store all English words of 45 letters or less is Of course it is impossible to create and store such a large table, and it would also be wasteful since fewer than a million of those words would be valid English words. What is the solution? Use a different hash function!

7 7 A Solution Create an array large enough to hold all the words in the English language. Map the words to the array indexes using a hash function. H ( key ) = key mod table-size A hash function should: Be easy to implement and quick to compute. Achieve an even distribution over the hash table. The table-size is normally chosen to be a prime number to avoid uneven distribution

8 8 A Simple Example

9 9 Hash Functions Hash function: key % table-size = array index 10 % 12 = % 12 = 7 83 % 12 = % 12 = 0 77 % 12 = 5 9 % 12 =

10 10 Collision What happens when we try and map the following keys onto the same array? This is called a collision!

11 11 Avoiding Collision We could try to avoid this collision by using a different hash function. Choosing a good hash functions is hard, so instead, we concentrate on how to resolve collisions.

12 12 Collisions Perfect Hash - each key maps to an empty bucket Rare! Collisions occur where two different keys map to the same bucket Solution?

13 13 Hash Function Hash function compute the key's bucket address from the key some function h(k) maps the domain of keys K into a range of addresses 0, 1, 2, M-1 The Problem Finding a suitable function h Determining a suitable M Handling collisions

14 14 Hash Function Mid Square (turn the key into an integer) square the key take some number of bits from the center to form the bucket address Advantages? Disadvantages?

15 15 Example Problem: Let's assume that the key value is simply the sum of the ASCII values squared. If the key value is 16-bits and we take the middle 8-bits: How big is the hash table? What is the range of bucket addresses? Where does the key AB map to in the hash table?

16 16 Implementation section 2.9 of K&R How do we access the middle 8 in an integer? // assume 4 byte integers unsigned int key = 0x1231a456; unsigned int middle; middle = (key & 0x000ff000) >> 12; printf("%08x %08x\n", key, middle); pad with zero 8 wide hexadecimal output One Hex-digit is 4 bits

17 17 Hash Function Division Hashing bucket = key % N N is the length of the hash table AND a prime number a) How big is the hash table? b) What is the range of bucket addresses? c) Where does the key AB map to in the hash table? Advantages? Disadvantages?

18 18 Collision Handling Techniques Open Addressing: if a collision occurs, then an empty slot is used to store the record. Techniques for selecting the empty slot include: Linear Probing. Quadratic Probing. Re-hashing (double hashing). Separate Chaining: if a collision occurs, then this new record is attached to the existing record in the form of a chain (linked list). This way, several records will share a slot.

19 19 Collision Handling Open Addressing If both K and C map to the same bucket we have a collision K and C are distinct K is inserted first To resolve using OA, find another unoccupied space for C BUT: We must do this systematically so we can find C again easily! Analysis: (summation of the # of probes to locate each key in the table) / # of keys in the table

20 20 Open Addressing Find another open bucket bucket = ( h(k) + f(i) ) % N N is the length of the table h(k) : original hash of key K f(i) : i is the number of times you have hashed and failed to find an empty slot First hash is: bucket = ( h(k) + f(0) ) % N f(0) = 0

21 21 Linear Probing If a collision occurs, then the next empty slot that is found is used to store the data item. If position h(n) is occupied, then try ( h(n) + 1 ) mod table-size, ( h(n) + 2 ) mod table-size, and so on until an empty slot is found. Problems with linear probing include: Formation of bad clusters. Since gaps are being filled, the collision problem is exacerbated.

22 22 Linear Probing f(i) = i Example: h(kn) = n % 11 Insert M13 G7 Q17 Y25 R18 Z26 F6 Bucket Data Primary Clustering!

### Hashing. October 19, CMPE 250 Hashing October 19, / 25

Hashing October 19, 2016 CMPE 250 Hashing October 19, 2016 1 / 25 Dictionary ADT Data structure with just three basic operations: finditem (i): find item with key (identifier) i insert (i): insert i into

### Hashing. Dr. Ronaldo Menezes Hugo Serrano. Ronaldo Menezes, Florida Tech

Hashing Dr. Ronaldo Menezes Hugo Serrano Agenda Motivation Prehash Hashing Hash Functions Collisions Separate Chaining Open Addressing Motivation Hash Table Its one of the most important data structures

### Hash Tables. Hashing Probing Separate Chaining Hash Function

Hash Tables Hashing Probing Separate Chaining Hash Function Introduction In Chapter 4 we saw: linear search O( n ) binary search O( log n ) Can we improve the search operation to achieve better than O(

### CS 310 Hash Tables, Page 1. Hash Tables. CS 310 Hash Tables, Page 2

CS 310 Hash Tables, Page 1 Hash Tables key value key value Hashing Function CS 310 Hash Tables, Page 2 The hash-table data structure achieves (near) constant time searching by wasting memory space. the

### CS 241 Analysis of Algorithms

CS 241 Analysis of Algorithms Professor Eric Aaron Lecture T Th 9:00am Lecture Meeting Location: OLB 205 Business HW5 extended, due November 19 HW6 to be out Nov. 14, due November 26 Make-up lecture: Wed,

### Lecture 4. Hashing Methods

Lecture 4 Hashing Methods 1 Lecture Content 1. Basics 2. Collision Resolution Methods 2.1 Linear Probing Method 2.2 Quadratic Probing Method 2.3 Double Hashing Method 2.4 Coalesced Chaining Method 2.5

### CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course

CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course Today s Topics Review Uses and motivations of hash tables Major concerns with hash tables Properties Hash function Hash

### CMSC 341 Hashing. Based on slides from previous iterations of this course

CMSC 341 Hashing Based on slides from previous iterations of this course Hashing Searching n Consider the problem of searching an array for a given value q If the array is not sorted, the search requires

### HASH TABLES. Goal is to store elements k,v at index i = h k

CH 9.2 : HASH TABLES 1 ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 2004) AND SLIDES FROM JORY DENNY AND

### Hash Tables. Hash functions Open addressing. November 24, 2017 Hassan Khosravi / Geoffrey Tien 1

Hash Tables Hash functions Open addressing November 24, 2017 Hassan Khosravi / Geoffrey Tien 1 Review: hash table purpose We want to have rapid access to a dictionary entry based on a search key The key

### Dictionaries and Hash Tables

Dictionaries and Hash Tables Nicholas Mainardi Dipartimento di Elettronica e Informazione Politecnico di Milano nicholas.mainardi@polimi.it 14th June 2017 Dictionaries What is a dictionary? A dictionary

### Open Addressing: Linear Probing (cont.)

Open Addressing: Linear Probing (cont.) Cons of Linear Probing () more complex insert, find, remove methods () primary clustering phenomenon items tend to cluster together in the bucket array, as clustering

### Cpt S 223. School of EECS, WSU

Hashing & Hash Tables 1 Overview Hash Table Data Structure : Purpose To support insertion, deletion and search in average-case constant t time Assumption: Order of elements irrelevant ==> data structure

### Introduction. hashing performs basic operations, such as insertion, better than other ADTs we ve seen so far

Chapter 5 Hashing 2 Introduction hashing performs basic operations, such as insertion, deletion, and finds in average time better than other ADTs we ve seen so far 3 Hashing a hash table is merely an hashing

### CSE 214 Computer Science II Searching

CSE 214 Computer Science II Searching Fall 2017 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Introduction Searching in a

### Hashing 1. Searching Lists

Hashing 1 Searching Lists There are many instances when one is interested in storing and searching a list: A phone company wants to provide caller ID: Given a phone number a name is returned. Somebody

### Hash Tables. Hash functions Open addressing. March 07, 2018 Cinda Heeren / Geoffrey Tien 1

Hash Tables Hash functions Open addressing Cinda Heeren / Geoffrey Tien 1 Hash functions A hash function is a function that map key values to array indexes Hash functions are performed in two steps Map

### Algorithms with numbers (2) CISC4080, Computer Algorithms CIS, Fordham Univ.! Instructor: X. Zhang Spring 2017

Algorithms with numbers (2) CISC4080, Computer Algorithms CIS, Fordham Univ.! Instructor: X. Zhang Spring 2017 Acknowledgement The set of slides have used materials from the following resources Slides

### Fast Lookup: Hash tables

CSE 100: HASHING Operations: Find (key based look up) Insert Delete Fast Lookup: Hash tables Consider the 2-sum problem: Given an unsorted array of N integers, find all pairs of elements that sum to a

### Hashing. 1. Introduction. 2. Direct-address tables. CmSc 250 Introduction to Algorithms

Hashing CmSc 250 Introduction to Algorithms 1. Introduction Hashing is a method of storing elements in a table in a way that reduces the time for search. Elements are assumed to be records with several

### Hashing. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

Hashing CptS 223 Advanced Data Structures Larry Holder School of Electrical Engineering and Computer Science Washington State University 1 Overview Hashing Technique supporting insertion, deletion and

### 2 Fundamentals of data structures

2.6 Hash tables Learning objectives: Be familiar with the concept of a hash table and its uses. Be able to apply simple hashing algorithms. Know what is meant by a collision and how collisions are handled

### HASH TABLES. Hash Tables Page 1

HASH TABLES TABLE OF CONTENTS 1. Introduction to Hashing 2. Java Implementation of Linear Probing 3. Maurer s Quadratic Probing 4. Double Hashing 5. Separate Chaining 6. Hash Functions 7. Alphanumeric

### Chapter 20 Hash Tables

Chapter 20 Hash Tables Dictionary All elements have a unique key. Operations: o Insert element with a specified key. o Search for element by key. o Delete element by key. Random vs. sequential access.

### Lecture 16 More on Hashing Collision Resolution

Lecture 16 More on Hashing Collision Resolution Introduction In this lesson we will discuss several collision resolution strategies. The key thing in hashing is to find an easy to compute hash function.

### Hash Tables Hash Tables Goodrich, Tamassia

Hash Tables 0 1 2 3 4 025-612-0001 981-101-0002 451-229-0004 Hash Tables 1 Hash Functions and Hash Tables A hash function h maps keys of a given type to integers in a fixed interval [0, N 1] Example: h(x)

### Data Structures and Algorithm Analysis (CSC317) Hash tables (part2)

Data Structures and Algorithm Analysis (CSC317) Hash tables (part2) Hash table We have elements with key and satellite data Operations performed: Insert, Delete, Search/lookup We don t maintain order information

### Chapter 5 Hashing. Introduction. Hashing. Hashing Functions. hashing performs basic operations, such as insertion,

Introduction Chapter 5 Hashing hashing performs basic operations, such as insertion, deletion, and finds in average time 2 Hashing a hash table is merely an of some fixed size hashing converts into locations

### Lecture 16. Reading: Weiss Ch. 5 CSE 100, UCSD: LEC 16. Page 1 of 40

Lecture 16 Hashing Hash table and hash function design Hash functions for integers and strings Collision resolution strategies: linear probing, double hashing, random hashing, separate chaining Hash table

### of characters from an alphabet, then, the hash function could be:

Module 7: Hashing Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Hashing A very efficient method for implementing

### CMSC 132: Object-Oriented Programming II. Hash Tables

CMSC 132: Object-Oriented Programming II Hash Tables CMSC 132 Summer 2017 1 Key Value Map Red Black Tree: O(Log n) BST: O(n) 2-3-4 Tree: O(log n) Can we do better? CMSC 132 Summer 2017 2 Hash Tables a

### Chapter 27 Hashing. Objectives

Chapter 27 Hashing 1 Objectives To know what hashing is for ( 27.3). To obtain the hash code for an object and design the hash function to map a key to an index ( 27.4). To handle collisions using open

### CS/COE 1501

CS/COE 1501 www.cs.pitt.edu/~lipschultz/cs1501/ Hashing Wouldn t it be wonderful if... Search through a collection could be accomplished in Θ(1) with relatively small memory needs? Lets try this: Assume

### Hashing Algorithms. Hash functions Separate Chaining Linear Probing Double Hashing

Hashing Algorithms Hash functions Separate Chaining Linear Probing Double Hashing Symbol-Table ADT Records with keys (priorities) basic operations insert search create test if empty destroy copy generic

### Hash Tables. Gunnar Gotshalks. Maps 1

Hash Tables Maps 1 Definition A hash table has the following components» An array called a table of size N» A mathematical function called a hash function that maps keys to valid array indices hash_function:

### Hash Tables. Johns Hopkins Department of Computer Science Course : Data Structures, Professor: Greg Hager

Hash Tables What is a Dictionary? Container class Stores key-element pairs Allows look-up (find) operation Allows insertion/removal of elements May be unordered or ordered Dictionary Keys Must support

### Why do we need hashing?

jez oar Hashing Hashing Ananda Gunawardena Many applications deal with lots of data Search engines and web pages There are myriad look ups. The look ups are time critical. Typical data structures like

### CS 2412 Data Structures. Chapter 10 Sorting and Searching

CS 2412 Data Structures Chapter 10 Sorting and Searching Some concepts Sorting is one of the most common data-processing applications. Sorting algorithms are classed as either internal or external. Sorting

### CPSC 259 admin notes

CPSC 9 admin notes! TAs Office hours next week! Monday during LA 9 - Pearl! Monday during LB Andrew! Monday during LF Marika! Monday during LE Angad! Tuesday during LH 9 Giorgio! Tuesday during LG - Pearl!

### Practical Session 8- Hash Tables

Practical Session 8- Hash Tables Hash Function Uniform Hash Hash Table Direct Addressing A hash function h maps keys of a given type into integers in a fixed interval [0,m-1] 1 Pr h( key) i, where m is

### STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Literatur Sjukani Moh., (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema. dkk, (2007), Struktur Data (Konsep

### Priority Queue Sorting

Priority Queue Sorting We can use a priority queue to sort a list of comparable elements 1. Insert the elements one by one with a series of insert operations 2. Remove the elements in sorted order with

### Hash Tables and Hash Functions

Hash Tables and Hash Functions We have seen that with a balanced binary tree we can guarantee worst-case time for insert, search and delete operations. Our challenge now is to try to improve on that...

### Hash Table. Ric Glassey

Hash Table Ric Glassey glassey@kth.se Overview Hash Table Aim: Describe the map abstract data type with efficient insertion, deletion and search operations Motivation: List data structures are divided

### CSE 373 Autumn 2012: Midterm #2 (closed book, closed notes, NO calculators allowed)

Name: Sample Solution Email address: CSE 373 Autumn 0: Midterm # (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may

### CS1020 Data Structures and Algorithms I Lecture Note #15. Hashing. For efficient look-up in a table

CS1020 Data Structures and Algorithms I Lecture Note #15 Hashing For efficient look-up in a table Objectives 1 To understand how hashing is used to accelerate table lookup 2 To study the issue of collision

### Introduction to. Algorithms. Lecture 5

6.006- Introduction to Algorithms Lecture 5 Prof. Manolis Kellis Unit #2 Genomes, Hashing, and Dictionaries 2 (hashing out ) Our plan ahead Today: Genomes, Dictionaries, i and Hashing Intro, basic operations,

### Implementation of Linear Probing (continued)

Implementation of Linear Probing (continued) Helping method for locating index: private int findindex(long key) // return -1 if the item with key 'key' was not found int index = h(key); int probe = index;

### CS2210 Data Structures and Algorithms

CS2210 Data Structures and Algorithms Lecture 5: Hash Tables Instructor: Olga Veksler 0 1 2 3 025-612-0001 981-101-0002 4 451-229-0004 2004 Goodrich, Tamassia Outline Hash Tables Motivation Hash functions

### ECE 242 Data Structures and Algorithms. Hash Tables II. Lecture 25. Prof.

ECE 242 Data Structures and Algorithms http://www.ecs.umass.edu/~polizzi/teaching/ece242/ Hash Tables II Lecture 25 Prof. Eric Polizzi Summary previous lecture Hash Tables Motivation: optimal insertion

### Lecture 10 March 4. Goals: hashing. hash functions. closed hashing. application of hashing

Lecture 10 March 4 Goals: hashing hash functions chaining closed hashing application of hashing Computing hash function for a string Horner s rule: (( (a 0 x + a 1 ) x + a 2 ) x + + a n-2 )x + a n-1 )

### lecture23: Hash Tables

lecture23: Largely based on slides by Cinda Heeren CS 225 UIUC 18th July, 2013 Announcements mp6.1 extra credit due tomorrow tonight (7/19) lab avl due tonight mp6 due Monday (7/22) Hash tables A hash

### Table ADT and Sorting. Algorithm topics continuing (or reviewing?) CS 24 curriculum

Table ADT and Sorting Algorithm topics continuing (or reviewing?) CS 24 curriculum A table ADT (a.k.a. Dictionary, Map) Table public interface: // Put information in the table, and a unique key to identify

### This lecture. Iterators ( 5.4) Maps. Maps. The Map ADT ( 8.1) Comparison to java.util.map

This lecture Iterators Hash tables Formal coursework Iterators ( 5.4) An iterator abstracts the process of scanning through a collection of elements Methods of the ObjectIterator ADT: object object() boolean

### BINARY HEAP cs2420 Introduction to Algorithms and Data Structures Spring 2015

BINARY HEAP cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 10 is due on Thursday -midterm grades out tomorrow 3 last time 4 -a hash table is a general storage

### CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators)

_ UWNetID: Lecture Section: A CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will give

### CMPS 10 Introduction to Computer Science Lecture Notes

CMPS Introduction to Computer Science Lecture Notes Binary Numbers Until now we have considered the Computing Agent that executes algorithms to be an abstract entity. Now we will be concerned with techniques

### Hash Tables. Lower bounds on sorting Hash functions. March 05, 2018 Cinda Heeren / Geoffrey Tien 1

Hash Tables Lower bounds on sorting Hash functions Cinda Heeren / Geoffrey Tien 1 Detour back to sorting Lower bounds on worst case Selection sort, Insertion sort, Quicksort, Merge sort Worst case complexities

### Data Structures. Topic #6

Data Structures Topic #6 Today s Agenda Table Abstract Data Types Work by value rather than position May be implemented using a variety of data structures such as arrays (statically, dynamically allocated)

### ASSIGNMENTS. Progra m Outcom e. Chapter Q. No. Outcom e (CO) I 1 If f(n) = Θ(g(n)) and g(n)= Θ(h(n)), then proof that h(n) = Θ(f(n))

ASSIGNMENTS Chapter Q. No. Questions Course Outcom e (CO) Progra m Outcom e I 1 If f(n) = Θ(g(n)) and g(n)= Θ(h(n)), then proof that h(n) = Θ(f(n)) 2 3. What is the time complexity of the algorithm? 4

### CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II 04 / 16 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Shortest weight path (Dijkstra's algorithm) Besides the final shortest weights

### WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION

Computer Science - 1 WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION 1. Access to moving head disks requires three periods of delay before information is brought into memory. The

### Figure 1: Chaining. The implementation consists of these private members:

Hashing Databases and keys. A database is a collection of records with various attributes. It is commonly represented as a table, where the rows are the records, and the columns are the attributes: Number

### In order to discuss hash tables, we will first consider the following supporting problem.

9.1 Introduction to Hash Tables In order to discuss hash tables, we will first consider the following supporting problem. 9.1.1 A Supporting Problem Suppose that we had approximately 150 different error

### Hashing. Yufei Tao. Department of Computer Science and Engineering Chinese University of Hong Kong

Department of Computer Science and Engineering Chinese University of Hong Kong In this lecture, we will revisit the dictionary search problem, where we want to locate an integer v in a set of size n or

### You must print this PDF and write your answers neatly by hand. You should hand in the assignment before recitation begins.

15-122 Homework 4 Page 1 of 13 15-122 : Principles of Imperative Computation, Summer 1 2014 Written Homework 4 Due: Thursday, June 12 before recitation Name: Andrew ID: Recitation: In this assignment,

### Data Structure. Measuring Input size. Composite Data Structures. Linear data structures. Data Structure is: Abstract Data Type 1/9/2014

Data Structure Measuring Input size Last lecture recap. A Data Structure is an aggregation of atomic and composite data into a set with defined relationships. Structure means a set of rules that holds

### Data Structures Brett Bernstein

Data Structures Brett Bernstein Lecture 8: Iterators, Maps, and Hashtables Exercises 1. Show how to print out the elements of a doubly linked list in reverse order. 2. What are the Java API classes that

### Database Technology. Topic 7: Data Structures for Databases. Olaf Hartig.

Topic 7: Data Structures for Databases Olaf Hartig olaf.hartig@liu.se Database System 2 Storage Hierarchy Traditional Storage Hierarchy CPU Cache memory Main memory Primary storage Disk Tape Secondary

### CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting

### CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting

### Review of Data Representation & Binary Operations Dhananjai M. Rao CSA Department Miami University

Review of Data Representation & Binary Operations Dhananjai M. Rao () CSA Department Miami University 1. Introduction In digital computers all data including numbers, characters, and strings are ultimately

### Dictionaries (Maps) Hash tables. ADT Dictionary or Map. n INSERT: inserts a new element, associated to unique value of a field (key)

Dictionaries (Maps) Hash tables ADT Dictionary or Map Has following operations: n INSERT: inserts a new element, associated to unique value of a field (key) n SEARCH: searches an element with a certain

### Measuring Input size. Last lecture recap.

Measuring Input size Last lecture recap. Linear data structures Compiled from http://www.eagle.tamut.edu/faculty/igor/cis-305.htm Abstract Data Type Data Structures. Main Notions and Definitions. Data

### 13 File Structures. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:

13 File Structures 13.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define two categories of access methods: sequential

### ECE 242 Data Structures and Algorithms. Hash Tables I. Lecture 24. Prof.

ECE 242 Data Structures and Algorithms http//www.ecs.umass.edu/~polizzi/teaching/ece242/ Hash Tables I Lecture 24 Prof. Eric Polizzi Motivations We have to store some records and perform the following

### Computer Science Foundation Exam

Computer Science Foundation Exam December 13, 2013 Section I A COMPUTER SCIENCE NO books, notes, or calculators may be used, and you must work entirely on your own. SOLUTION Question # Max Pts Category

### Announcements. Container structures so far. IntSet ADT interface. Sets. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am

Announcements Today s topic: Hashing (Ch. 10) Next topic: Graphs Break around 11:45am Container structures so far Array lists O(1) access O(n) insertion/deletion (average case), better at end Linked lists

### Chapter 11: Implementing File Systems. Operating System Concepts 8 th Edition,

Chapter 11: Implementing File Systems, Silberschatz, Galvin and Gagne 2009 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation Methods

### STANDARD ADTS Lecture 17 CS2110 Spring 2013

STANDARD ADTS Lecture 17 CS2110 Spring 2013 Abstract Data Types (ADTs) 2 A method for achieving abstraction for data structures and algorithms ADT = model + operations In Java, an interface corresponds

### Hash Tables. Hash tables combine the random access ability of an array with the dynamism of a linked list.

Hash tables combine the random access ability of an array with the dynamism of a linked list. This means (assuming we define our hash table well): Insertion can start to tend toward q() Deletion can start

### INF2220: algorithms and data structures Series 3

Universitetet i Oslo Institutt for Informatikk A. Maus, R.K. Runde, I. Yu INF2220: algorithms and data structures Series 3 Topic Map and Hashing (Exercises with hints for solution) Issued: 7. 09. 2016

### Computer Systems Programming. Practice Midterm. Name:

Computer Systems Programming Practice Midterm Name: 1. (4 pts) (K&R Ch 1-4) What is the output of the following C code? main() { int i = 6; int j = -35; printf( %d %d\n,i++, ++j); i = i >

### Queues. Queue ADT. Queue Specification. An ordered sequence A queue supports operations for inserting (enqueuing) and removing (dequeuing) elements.

Queues Look!up tables Hash tables An ordered sequence A queue supports operations for inserting (enqueuing) and removing (dequeuing) elements. Maps When dequeuing, the element that has been in the queue

### 6.7 b. Show that a heap of eight elements can be constructed in eight comparisons between heap elements. Tournament of pairwise comparisons

Homework 4 and 5 6.7 b. Show that a heap of eight elements can be constructed in eight comparisons between heap elements. Tournament of pairwise comparisons 6.8 Show the following regarding the maximum

### Chapter 5: Physical Database Design. Designing Physical Files

Chapter 5: Physical Database Design Designing Physical Files Technique for physically arranging records of a file on secondary storage File Organizations Sequential (Fig. 5-7a): the most efficient with

### Solution for Midterm Exam 1

PROBLEM 1 (10 points) Solution for Midterm Exam 1 X Matrix is an nxn sparse matrix in which all non-zero terms are on two diagonals of the square Matrix. That means the x i,j is part of X Matrix iff i=j

### Elementary Number Theory. Kenneth H. Rosen Sixth Edition

Elementary Number Theory Kenneth H. Rosen Sixth Edition Pearson Education Limited Edinburgh Gate Harlow Essex CM20 2JE England and Associated Companies throughout the world Visit us on the World Wide Web

### Announcements. Today s topic: Hashing (Ch. 10) Next topic: Graphs. Break around 11:45am

Announcements Today s topic: Hashing (Ch. 10) Next topic: Graphs Break around 11:45am 1 Container structures so far Array lists O(1) access O(n) insertion/deletion (average case), better at end Linked

### LOOPS. 1- Write a program that prompts user to enter an integer N and determines and prints the sum of cubes from 5 to N (i.e. sum of 5 3 to N 3 ).

LOOPS 1- Write a program that prompts user to enter an integer N and determines and prints the sum of cubes from 5 to N (i.e. sum of 5 3 to N 3 ). 2-Give the result of the following program: #include

### Symbol Table Information. Symbol Tables. Symbol table organization. Hash Tables. What kind of information might the compiler need?

Symbol Table Information For compile-time efficiency, compilers often use a symbol table: associates lexical names (symbols) with their attributes What items should be entered? variable names defined constants

### Hash Tables. CS 321 Spring 2015

Hash Tables CS 321 Spring 2015 Todays Topics HW1 Available on Web Site. PA 2 CPUScheduling Due Fri Feb 13 th PA 1 Grades Out today All codes ran. Max Heap Methods Full Radix Sort Hash Tables Max- Heap

### Chapter 12 discusses several ways of storing information in an array, and later searching for the. Hash tables are a common

CSC212 Data Structure t Lecture 20 Hashing Instructor: George Wolberg Department of Computer Science City College of New York Hash Tables Data Structures and Other Objects Using C++ Chapter 12 discusses

### Symbol Tables. For compile-time efficiency, compilers often use a symbol table: associates lexical names (symbols) with their attributes

For compile-time efficiency, compilers often use a symbol table: associates lexical names (symbols) with their attributes What items should be entered? variable names defined constants procedure and function

### Octal and Hexadecimal Integers

Octal and Hexadecimal Integers CS 350: Computer Organization & Assembler Language Programming A. Why? Octal and hexadecimal numbers are useful for abbreviating long bitstrings. Some operations on octal

### Digital Logic Lecture 2 Number Systems

Digital Logic Lecture 2 Number Systems By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department Outline Introduction. Basic definitions. Number systems types. Conversion between different

### Midterm Exam 2B Answer key

Midterm Exam 2B Answer key 15110 Principles of Computing Fall 2015 April 6, 2015 Name: Andrew ID: Lab section: Instructions Answer each question neatly in the space provided. There are 6 questions totaling

### a) State the need of data structure. Write the operations performed using data structures.

Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model answer and the answer written by candidate