Professional Documents
Culture Documents
Binary Search Is Like Looking Up A Phone Number or A Word in The Dictionary
Binary Search Is Like Looking Up A Phone Number or A Word in The Dictionary
a: 1 5 7 9 10 13 17 19 27
0 1 2 3 4 5 6 7 8
val = 7
a: 1 5 7 9 10 13 17 19 27
0 1 2 3 4 5 6 7 8
a: 1 5 7 9 10 13 17 19 27
0 1 2 3 4 5 6 7 8
a: 1 5 7 9 10 13 17 19 27
0 1 2 3 4 5 6 7 8
Binary Search – C++ Code
int isPresent(int *arr, int val, int N)
{
int low = 0;
int high = N - 1;
int mid;
while ( low <= high ){
mid = ( low + high )/2;
if (arr[mid]== val)
return 1; // found!
else if (arr[mid] < val)
low = mid + 1;
else
high = mid - 1;
}
return 0; // not found
}
Binary Search: binary tree
First half
. . .
After i bisections N/2i =1 item
i = log2 N
Implementation 3: linked list
20 30 40 50 60
Skip List Representation
20 30 40 50 60
Higher Level Chains
head tail
level 1&2 chains
20 26 30 40 50 57 60
20 26 30 40 50 57 60