Professional Documents
Culture Documents
Dept. Computer
Science
Hash structure
Data Structures and Algorithms Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Search + Hash.1
Search + Hash
Overview
Dept. Computer
Science
1 Searching algorithms
Sequential Search
Interval Search
2 Hash structure Searching algorithms
Sequential Search
Basic concepts Interval Search
Mid-square Mid-square
Mid-square
Mid-square Folding
Folding Rotation
Pseudo-random
Rotation Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.2
Search + Hash
Dept. Computer
Science
Searching algorithms
Sequential Search
Hash structure
Basic concepts
Hash functions
Search + Hash.3
Search + Hash
Searching algorithms
Dept. Computer
Science
Definition
Searching algorithms
Searching Algorithms are designed to check for an ele- Sequential Search
Interval Search
ment or retrieve an element from any data structure where
Hash structure
it is stored. Based on the type of search operation, these Basic concepts
Hash functions
algorithms are generally classified into two categories: Direct Hashing
Modulo division
1 Sequential Search: In this, the list or array is traversed Digit extraction
Mid-square
sequentially and every element is checked. Mid-square
Folding
2 Interval Search: These algorithms are specifically de- Rotation
Pseudo-random
signed for searching in sorted data-structures. Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.4
Search + Hash
Linear Search
Dept. Computer
Science
1 Start from the leftmost element of list and one by one Interval Search
Hash structure
compare x with each element of list. Basic concepts
Hash functions
Direct Hashing
2 If x matches with an element, return the index. Modulo division
Digit extraction
Mid-square
Search + Hash.5
Search + Hash
Linear Search
Dept. Computer
Science
1 Start from the leftmost element of list and one by one Interval Search
Hash structure
compare x with each element of list. Basic concepts
Hash functions
Direct Hashing
2 If x matches with an element, return the index. Modulo division
Digit extraction
Mid-square
Search + Hash.5
Search + Hash
Binary Search
Dept. Computer
Science
Approach
Search a sorted array by repeatedly dividing the search in-
terval in half. Begin with an interval covering the whole Searching algorithms
array. Sequential Search
Interval Search
1 If the value of the search key is less than the item in Hash structure
the middle of the interval, narrow the interval to the Basic concepts
Hash functions
2 Repeatedly check until the value is found or the interval Digit extraction
Mid-square
is empty. Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.6
Search + Hash
Binary Search
Dept. Computer
Science
Approach
Search a sorted array by repeatedly dividing the search in-
terval in half. Begin with an interval covering the whole Searching algorithms
array. Sequential Search
Interval Search
1 If the value of the search key is less than the item in Hash structure
the middle of the interval, narrow the interval to the Basic concepts
Hash functions
2 Repeatedly check until the value is found or the interval Digit extraction
Mid-square
is empty. Mid-square
Folding
Rotation
Pseudo-random
Implemetation: Collision resolution
Open addressing
• Recursive Bucket hashing
Linked list resolution
• Iterative
Time complexity: O(log n)
Search + Hash.6
Search + Hash
Jump Search
Dept. Computer
Science
Approach
Jump Search is a searching algorithm for sorted arrays. The
basic idea is to check fewer elements (than linear search) by Searching algorithms
Sequential Search
Search + Hash.7
Search + Hash
Jump Search
Dept. Computer
Science
Approach
Jump Search is a searching algorithm for sorted arrays. The
basic idea is to check fewer elements (than linear search) by Searching algorithms
Sequential Search
Search + Hash.7
Search + Hash
Jump Search
Dept. Computer
Science
Approach
Jump Search is a searching algorithm for sorted arrays. The
basic idea is to check fewer elements (than linear search) by Searching algorithms
Sequential Search
Search + Hash.7
Search + Hash
Jump Seach
Dept. Computer
Science
Hash structure
1 Jump from index 0 to index 4. Basic concepts
Hash functions
2 Jump from index 4 to index 8. Direct Hashing
Modulo division
3 Jump from index 8 to index 12. Digit extraction
Mid-square
5 Do linear search from index 8 to get the element 55. Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.8
Search + Hash
Interpolation Seach
Dept. Computer
Approach Science
Search + Hash.9
Search + Hash
Interpolation Seach
Dept. Computer
Approach Science
Time complexity:
• If elements are uniformly distributed, then O(log log n)).
• In worst case, it can take up to O(n).
Search + Hash.9
Search + Hash
Interpolation Seach
Dept. Computer
Approach Science
3 If the item is less than arr[pos], calculate the probe Modulo division
Digit extraction
Time complexity:
• If elements are uniformly distributed, then O(log log n)).
• In worst case, it can take up to O(n).
Search + Hash.9
Search + Hash
Interpolation Seach
Dept. Computer
Approach Science
3 If the item is less than arr[pos], calculate the probe Modulo division
Digit extraction
Time complexity:
• If elements are uniformly distributed, then O(log log n)).
• In worst case, it can take up to O(n).
Search + Hash.9
Search + Hash
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.10
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Search + Hash.11
Search + Hash
Basic concepts
Dept. Computer
Science
Search complexity:
Size Binary Sequential Sequential Searching algorithms
Sequential Search
(Average) (Worst Case) Interval Search
16 4 8 16 Hash structure
Basic concepts
50 6 25 50 Hash functions
Direct Hashing
256 8 128 256 Modulo division
Digit extraction
1,000 10 500 1,000 Mid-square
Mid-square
10,000 14 5,000 10,000 Folding
Rotation
100,000 17 50,000 100,000 Pseudo-random
Collision resolution
1,000,000 20 500,000 1,000,000 Open addressing
Bucket hashing
Linked list resolution
Search + Hash.12
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.13
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.13
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.14
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.15
Search + Hash
Basic concepts
Dept. Computer
Science
• Home address: address produced by a
hash function.
• Prime area: memory that contains all the Searching algorithms
Sequential Search
home addresses. Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.16
Search + Hash
Basic concepts
Dept. Computer
Science
• Home address: address produced by a
hash function.
• Prime area: memory that contains all the Searching algorithms
Sequential Search
home addresses. Interval Search
Hash structure
• Synonyms: a set of keys that hash to the Basic concepts
Hash functions
Search + Hash.16
Search + Hash
Basic concepts
Dept. Computer
Science
• Home address: address produced by a
hash function.
• Prime area: memory that contains all the Searching algorithms
Sequential Search
home addresses. Interval Search
Hash structure
• Synonyms: a set of keys that hash to the Basic concepts
Hash functions
• No location collision
• Compact address space
Search + Hash.16
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.17
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.18
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.19
Search + Hash
Basic concepts
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.20
Search + Hash
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.21
Search + Hash
Hash functions
Dept. Computer
Science
• Direct hashing
Searching algorithms
• Digit extraction
Hash structure
Basic concepts
Hash functions
• Folding Mid-square
Mid-square
Folding
• Rotation Rotation
Pseudo-random
Collision resolution
Search + Hash.22
Search + Hash
Direct Hashing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
The address is the key itself: Basic concepts
Hash functions
Search + Hash.23
Search + Hash
Direct Hashing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.24
Search + Hash
Modulo division
Dept. Computer
Science
employees Pseudo-random
Collision resolution
Search + Hash.25
Search + Hash
Digit extraction
Dept. Computer
Science
Searching algorithms
Address = selected digits f rom Key Sequential Search
Interval Search
Hash structure
Example: Basic concepts
Hash functions
121267→112 Mid-square
Mid-square
378845→388 Folding
Rotation
Pseudo-random
Search + Hash.26
Search + Hash
Mid-square
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Address = middle digits of Key 2 Basic concepts
Hash functions
Direct Hashing
Modulo division
Search + Hash.27
Search + Hash
Mid-square
Dept. Computer
Science
Hash structure
• Variations: use only a portion of the key. Basic concepts
Hash functions
Search + Hash.28
Search + Hash
Folding
Dept. Computer
Science
Hash structure
Key = 123—456—789 Basic concepts
Hash functions
→ 368 Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.29
Search + Hash
Folding
Dept. Computer
Science
Hash structure
Key = 123—456—789 Basic concepts
Hash functions
→ 368 Folding
Rotation
Pseudo-random
Collision resolution
Hash structure
Search + Hash.30
Search + Hash
Rotation
Dept. Computer
Science
600101 → 62 160010 → 26
Sequential Search
Interval Search
Spreading the data more evenly across the ad- Open addressing
Bucket hashing
Search + Hash.31
Search + Hash
Pseudo-random
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Search + Hash.32
Search + Hash
Pseudo-random
Dept. Computer
Science
Example:
Key = 121267 Searching algorithms
Sequential Search
a = 17 Interval Search
Hash structure
c=7 Basic concepts
Hash functions
= 41 Bucket hashing
Linked list resolution
Search + Hash.33
Search + Hash
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.34
Search + Hash
Collision resolution
Dept. Computer
Science
Hash structure
→ Requiring collision resolution methods Basic concepts
Hash functions
Direct Hashing
Modulo division
function Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.35
Search + Hash
Collision resolution
Dept. Computer
Science
Searching algorithms
Sequential Search
Search + Hash.36
Search + Hash
Open addressing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.37
Search + Hash
Open addressing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash function: Hash structure
Search + Hash.38
Search + Hash
Open addressing
Dept. Computer
Science
Searching algorithms
Sequential Search
Hash structure
hp : U ×{0, 1, 2, ..., m−1} → {0, 1, 2, ..., m− Basic concepts
Hash functions
1} Direct Hashing
Modulo division
Digit extraction
Mid-square
set of keys probe numbers addresses Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.39
Search + Hash
Open Addressing
Dept. Computer
Science
1 Algorithm hashInsert(ref T ¡array¿, val k ¡key¿)
2 Inserts key k into table T.
9 else Mid-square
Folding
10 i=i+1 Rotation
Pseudo-random
Search + Hash.40
Search + Hash
Open Addressing
Dept. Computer
Science
1 Algorithm hashSearch(val T ¡array¿, val k ¡key¿)
2 Searches for key k in table T.
3 i=0
Searching algorithms
4 while i ¡ m do Sequential Search
Interval Search
5 j = hp(k, i)
Hash structure
6 if T[j] = k then Basic concepts
Hash functions
7 return j Direct Hashing
Modulo division
8 else if T[j] = nil then Digit extraction
10 else Folding
Rotation
11 i=i+1 Pseudo-random
Collision resolution
14 return nil
15 End hashSearch
Search + Hash.41
Search + Hash
Open Addressing
Dept. Computer
Science
Searching algorithms
There are different methods: Sequential Search
Interval Search
Search + Hash.42
Search + Hash
Linear Probing
Dept. Computer
• When a home address is occupied, go to Science
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.43
Search + Hash
Linear Probing
Dept. Computer
• When a home address is occupied, go to Science
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.43
Search + Hash
Linear Probing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.44
Search + Hash
Linear Probing
Dept. Computer
Science
• Disadvantages: Mid-square
Folding
Search + Hash.45
Search + Hash
Quadratic Probing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.46
Search + Hash
Quadratic Probing
Dept. Computer
Science
Hash structure
Basic concepts
Search + Hash.47
Search + Hash
Double Hashing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.48
Search + Hash
Key Offset
Dept. Computer
Science
Hash structure
Basic concepts
Search + Hash.49
Search + Hash
Key Offset
Dept. Computer
Science
Hash structure
Basic concepts
Search + Hash.49
Search + Hash
Open addressing
Dept. Computer
Science
Hash structure
1} Basic concepts
Hash functions
Direct Hashing
Modulo division
set of keys probe numbers addresses Digit extraction
Mid-square
Mid-square
{0, 1, . . . , m − 1} Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.50
Search + Hash
Bucket hashing
Dept. Computer
Science
Searching algorithms
Sequential Search
Hash structure
multiple pieces of data. Basic concepts
Hash functions
Search + Hash.51
Search + Hash
Bucket hashing
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.52
Search + Hash
Linked List Resolution
Dept. Computer
Science
Searching algorithms
Sequential Search
Hash structure
each collision resolution increases the Basic concepts
Hash functions
Search + Hash.53
Search + Hash
Linked list resolution
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Hash structure
Basic concepts
Hash functions
Direct Hashing
Modulo division
Digit extraction
Mid-square
Mid-square
Folding
Rotation
Pseudo-random
Collision resolution
Open addressing
Bucket hashing
Linked list resolution
Search + Hash.54
Search + Hash
Dept. Computer
Science
Searching algorithms
Sequential Search
Interval Search
Search + Hash.55