0% found this document useful (0 votes)
32 views3 pages

2 Binary - Search

m

Uploaded by

Tanvir Anan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views3 pages

2 Binary - Search

m

Uploaded by

Tanvir Anan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Lab : Linear Search and Binary Search

Binary Search Algorithm:

Binary search is a fast search algorithm with run-time complexity of Ο(log n). This
search algorithm works on the principle of divide and conquer. For this algorithm to
work properly, the data collection should be in the sorted form.

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.
Lab : Linear Search and Binary Search

Binary Search Pseudocode:

Procedure binary_search
A ← sorted array
n ← size of array
x ← value to be searched

Set lowerBound = 1
Set upperBound = n

while x not found


if upperBound < lowerBound
EXIT: x does not exist.

set midPoint = lowerBound + (upperBound - lowerBound ) / 2

if A[midPoint] < x
set lowerBound = midPoint + 1

if A[midPoint] > x
set upperBound = midPoint - 1

if A[midPoint] = x

EXIT: x found at location midPoint


end while
end procedure

Binary Search Coding:

#include <iostream>
#include <vector>

int binarySearchRecurrence(const std::vector<int>& arr, int left, int right,


int target) {
if (left <= right) {
int mid = left + (right - left) / 2; // Calculate mid point of array

// Check if target is present at mid


if (arr[mid] == target) {
return mid;
}

// If target is greater, search in the right subarray


if (arr[mid] < target) {
return binarySearchRecurrence(arr, mid + 1, right, target);
}
Lab : Linear Search and Binary Search

// Else search in the left subarray


return binarySearchRecurrence(arr, left, mid - 1, target);
}

// Target was not found in the array


return -1;
}

int main() {
std::vector<int> array = {1, 4, 6, 8, 10, 15, 20};
int target = 15;

int result = binarySearchRecurrence(array, 0, array.size() - 1, target);

if (result != -1) {
std::cout << "Element " << target << " found at index " << result <<
std::endl;
} else {
std::cout << "Element " << target << " not found in the array." <<
std::endl;
}
return 0;
}

Time Complexity of Binary Search:

You might also like