Lesson 05
Lesson 05
• Binary Search
Objective & Usage in the Organizations
• To be able to work with Linear Search in array or any
other data structure.
1
Linear Search
❑ Linear search is a method for finding a particular value in a array list, that consists of
checking every one of its elements, one at a time in sequence, until the desired one is
found.
❑ It is also known as sequential search.
2
Linear Search Algorithm
Unordered-Linear-Search[A, n, x]
1. for i 1 to n
2. do if A[i] = x
3. then return i
4. else i i + 1
5. return “x not found”
3
Linear Search
❑ Advantages
❑ Easy algorithm to understand
❑ Array can be in any order
❑ Disadvantage
❑ Inefficient (slow): for array of N elements,
❑ Examines N/2 elements on average for value in array
❑ N elements for value not in array
4
Binary Search
❑ A binary search algorithm finds the position of a specific value within a sorted
array.
❑ This search algorithm works on the principle of divide and conquer.
❑ This search algorithm can be quite fast, but the limitation is that the data has to
be in a sorted form.
❑ A binary search is also known as half-interval search or logarithmic search.
❑ Binary search is a fast search algorithm with run-time complexity of Ο(log n).
5
Binary Search
❑ Binary search looks for a particular item by comparing the middle most item of the
collection.
❑ If a match occurs, then the index of item is returned.
❑ If the middle item is greater than the item, then the item is searched in the sub-
array to the left of the middle item.
❑ Otherwise, the item is searched for in the sub-array to the right of the middle item.
❑ This process continues on the sub-array as well until the size of the subarray
reduces to zero.
6
Binary Search
7
How Binary Search Works
❑ for a binary search to work, it is mandatory for the target array to be sorted.
❑ We shall learn the process of binary search with a pictorial example.
❑ The following is our sorted array and let us assume that we need to search the
location of value 31 using binary search.
8
How Binary Search Works (Cont...)
❑ First, we shall determine half of the array by using this formula −
❑ Here it is, 0 + (9 - 0 ) / 2 = 4 (integer value of 4.5). So, 4 is the mid of the array.
9
How Binary Search Works (Cont...)
❑ Now we compare the value stored at location 4, with the value being searched,
i.e. 31.
❑ We find that the value at location 4 is 27, which is not a match.
❑ As the value is greater than 27 and we have a sorted array, so we also know that
the target value must be in the upper portion of the array.
10
How Binary Search Works (Con...)
❑ We change our low to mid + 1 and find the new mid value again.
❑ Our new mid is 7 now. We compare the value stored at location 7 with our target
value 31.
11
How Binary Search Works (Con...)
❑ The value stored at location 7 is not a match, rather it is more than what we are
looking for. So, the value must be in the lower part from this location.
12
How Binary Search Works (Con...)
❑ We compare the value stored at location 5 with our target value. We find that it
is a match.
13
Binary Search
❑ Advantage
❑ Much more efficient than linear Search (for array of N elements, performs at
most log2N comparisons)
❑ Disadvantage
❑ Requires that array elements be sorted
14
How Fast is a Binary Search?
❑ Worst case: 11 items in the list took 4 tries
14
Runtime Examples
15
Efficiency of Binary Search
❑ The binary search algorithm is extremely fast compared to an algorithm that tries all
array elements in order
❑About half the array is eliminated from consideration right at the start
❑Then a quarter of the array, then an eighth of the array, and so forth
1
Summery & Students Evaluation
• What is Linear Search?
Sorting
26