SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
Binary search Algorithm
• Usama Ashafq
• Zaigham Abbas
• Fazal ur Rehman
• Umer Sarwar
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 sub-arrays reduces to zero.
Binary search works only on a sorted set of
elements. To use binary search on a
collection, the collection must first be sorted.
When binary search is used to perform
operations on a sorted set, the number of
iterations can always be reduced on the basis
of the value that is being searched.
Algorithm
Algorithm is quite simple. It can be done either recursively
or iteratively:
1. get the middle element;
2. if the middle element equals to the searched value,
the algorithm stops;
3. otherwise, two cases are possible:
*searched value is less, than the middle element. In
this case, go to the step 1 for the part of the array,
before middle element.
*searched value is greater, than the middle element. In
this case, go to the step 1 for the part of the array, after
middle element.
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.
First, we shall determine half of the array by using this formula
−
mid = low + (high - low) / 2
Here it is, 0 + (9 - 0 ) / 2 = 4 (integer value of 4.5). So, 4 is the
mid of the array.
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.
We change our low to mid + 1 and find the new mid value
again.
low = mid + 1
mid = low + (high - low) / 2
Our new mid is 7 now. We compare the value stored at
location 7 with our target value 31.
We compare the value stored at location 5 with
our target value. We find that it is a match.
We conclude that the target value 31 is stored at
location 5.
Binary search halves the searchable items and thus
reduces the count of comparisons to be made to very
less numbers.
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.
Hence, we calculate the mid again. This time it
is 5.
Examples
Example 1. Find 6 in {-1, 5, 6, 18, 19, 25, 46,
78, 102, 114}.
Step 1 (middle element is 19 > 6): -
1 5 6 18 19 25 46 78 102 114
Step 2 (middle element is 5 < 6): -
1 5 6 18 19 25 46 78 102 114
Step 3 (middle element is 6 == 6): -
1 5 6 18 19 25 46 78 102 114
• #include<iostream>
• Using namespace std;
• Int main()
• {
• Int a[100];
• Int n, I, beg, ed, mid;
• Cout<<“enter no of elements:”;
• Cin>>n;
• Cout<<“enter sorted elements:n”;
• for(i=1;i<=n;i++)
• {
• Cin>>a[i];
• }
cout<<“enter search element:’;
cin>>item;
Beg=1;
Ed=n;
Mid=(beg+ed)/2;
While(beg<=ed &&
a[mid]!=item)
{
If(a[mid]<item)
Beg=mid+1;
else
• Ed=mid-1;
• mid=(beg+end)/2;
• }
• If(a[mid]==item)
• {
• cout<<“item found at location:n”;
• }
• Else
• cout<<“data not found”;
• cout<<“nnn****************end of
program***************nnn”;
• }
Binary search Algorithm
 Binary search is much faster then linear search.
 Binary search takes an average log2(n) , whereas linear
search is n/2.
 Binary search on average of 20 , whereas linear search
is 500,000 comparisons.
 It works only on sorted list, otherwise it is not applicable.
 There is a great loss of efficiency if the list does not
support random access.
 It is more complicated then linear search.
Binary search Algorithm

More Related Content

What's hot (20)

PPT
Data Structure and Algorithms Binary Search Tree
ManishPrajapati78
 
PPTX
Rahat &amp; juhith
Rj Juhith
 
PPTX
Binary search
AparnaKumari31
 
PPTX
Insertion Sort
Brett Duncan
 
PPTX
Linear Search
SWATHIR72
 
PDF
linear search and binary search
Zia Ush Shamszaman
 
PPT
Sorting algorithms
CHANDAN KUMAR
 
PPT
Binary Search
kunj desai
 
PPTX
Linear search-and-binary-search
International Islamic University
 
PPTX
Bubble sort | Data structure |
MdSaiful14
 
PDF
Linked list implementation of Queue
Dr. Sindhia Lingaswamy
 
PDF
DS UNIT 1.pdf
SeethaDinesh
 
PDF
BCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHI
Sowmya Jyothi
 
PPT
Stacks
sweta dargad
 
PPTX
Data structure tries
Md. Naim khan
 
PDF
Linear search algorithm
NeoClassical
 
PDF
Sorting Algorithms
Mohammed Hussein
 
PPT
Chapter 11 - Sorting and Searching
Eduardo Bergavera
 
Data Structure and Algorithms Binary Search Tree
ManishPrajapati78
 
Rahat &amp; juhith
Rj Juhith
 
Binary search
AparnaKumari31
 
Insertion Sort
Brett Duncan
 
Linear Search
SWATHIR72
 
linear search and binary search
Zia Ush Shamszaman
 
Sorting algorithms
CHANDAN KUMAR
 
Binary Search
kunj desai
 
Linear search-and-binary-search
International Islamic University
 
Bubble sort | Data structure |
MdSaiful14
 
Linked list implementation of Queue
Dr. Sindhia Lingaswamy
 
DS UNIT 1.pdf
SeethaDinesh
 
BCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHI
Sowmya Jyothi
 
Stacks
sweta dargad
 
Data structure tries
Md. Naim khan
 
Linear search algorithm
NeoClassical
 
Sorting Algorithms
Mohammed Hussein
 
Chapter 11 - Sorting and Searching
Eduardo Bergavera
 

Similar to Binary search Algorithm (20)

PPTX
Lecture_Oct26.pptx
SylrizcinMarieManzo3
 
PDF
Binary search algorithm
maamir farooq
 
PDF
advanced searching and sorting.pdf
haramaya university
 
PDF
Linear and Binary Search
WinNie Sjr
 
PPTX
Searching searching in in arrays arrays.pptx
Sahar160629
 
PPT
Searching
Muhammad Farhan
 
PPTX
Analysis of Algorithm - Binary Search.pptx
Maulana Abul Kalam Azad University of Technology
 
PPTX
Searching Algorithms - Foundations of Algorithms
ssusere05275
 
PPTX
All Searching and Sorting Techniques in Data Structures
sonalishinge2015
 
PPTX
Unit 7 sorting
Dabbal Singh Mahara
 
PPT
Searching Sorting
guest2cb109
 
PPTX
Searching techniques in Data Structure And Algorithm
03446940736
 
PPT
Searching Sorting-SELECTION ,BUBBBLE.ppt
kunalpatil5661
 
PPT
search_sort.ppt
SwatiHans10
 
PPTX
data_structure_Chapter two_computer.pptx
Mohammed472103
 
PDF
BINARY SEARCH - A - DATA STRUCTURE AND ALGORITHM.pdf
mebite666
 
DOCX
PPS 5.5.BASIC ALGORITHMS SEARCHING (LINEAR SEARCH, BINARY SEARCH ETC.), BASI...
Sitamarhi Institute of Technology
 
PPTX
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
PPTX
Algorithm & data structures lec4&5
Abdul Khan
 
PPTX
Searching and Sorting Algorithms in Data Structures
poongothai11
 
Lecture_Oct26.pptx
SylrizcinMarieManzo3
 
Binary search algorithm
maamir farooq
 
advanced searching and sorting.pdf
haramaya university
 
Linear and Binary Search
WinNie Sjr
 
Searching searching in in arrays arrays.pptx
Sahar160629
 
Searching
Muhammad Farhan
 
Analysis of Algorithm - Binary Search.pptx
Maulana Abul Kalam Azad University of Technology
 
Searching Algorithms - Foundations of Algorithms
ssusere05275
 
All Searching and Sorting Techniques in Data Structures
sonalishinge2015
 
Unit 7 sorting
Dabbal Singh Mahara
 
Searching Sorting
guest2cb109
 
Searching techniques in Data Structure And Algorithm
03446940736
 
Searching Sorting-SELECTION ,BUBBBLE.ppt
kunalpatil5661
 
search_sort.ppt
SwatiHans10
 
data_structure_Chapter two_computer.pptx
Mohammed472103
 
BINARY SEARCH - A - DATA STRUCTURE AND ALGORITHM.pdf
mebite666
 
PPS 5.5.BASIC ALGORITHMS SEARCHING (LINEAR SEARCH, BINARY SEARCH ETC.), BASI...
Sitamarhi Institute of Technology
 
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
Algorithm & data structures lec4&5
Abdul Khan
 
Searching and Sorting Algorithms in Data Structures
poongothai11
 
Ad

Recently uploaded (20)

PDF
Datàaaaaaaaaaengineeeeeeeeeeeeeeeeeeeeeee
juadsr96
 
PPTX
MENU-DRIVEN PROGRAM ON ARUNACHAL PRADESH.pptx
manvi200807
 
PPTX
Comparative Study of ML Techniques for RealTime Credit Card Fraud Detection S...
Debolina Ghosh
 
PPTX
covid 19 data analysis updates in our municipality
RhuAyungon1
 
PDF
Predicting Titanic Survival Presentation
praxyfarhana
 
PPTX
Discrete Logarithm Problem in Cryptography (1).pptx
meshablinx38
 
PPTX
Data Analytics using sparkabcdefghi.pptx
KarkuzhaliS3
 
PPTX
Monitoring Improvement ( Pomalaa Branch).pptx
fajarkunee
 
PPTX
big data eco system fundamentals of data science
arivukarasi
 
PPTX
办理学历认证InformaticsLetter新加坡英华美学院毕业证书,Informatics成绩单
Taqyea
 
PDF
Group 5_RMB Final Project on circular economy
pgban24anmola
 
PPTX
Generative AI Boost Data Governance and Quality- Tejasvi Addagada
Tejasvi Addagada
 
PDF
Exploiting the Low Volatility Anomaly: A Low Beta Model Portfolio for Risk-Ad...
Bradley Norbom, CFA
 
PDF
5- Global Demography Concepts _ Population Pyramids .pdf
pkhadka824
 
PDF
GOOGLE ADS (1).pdf THE ULTIMATE GUIDE TO
kushalkeshwanisou
 
PPTX
RESEARCH-FINAL-GROUP-3, about the final .pptx
gwapokoha1
 
PDF
UNISE-Operation-Procedure-InDHIS2trainng
ahmedabduselam23
 
PDF
Loading Data into Snowflake (Bulk & Stream)
Accentfuture
 
PDF
SaleServicereport and SaleServicereport
2251330007
 
PDF
Unlocking Insights: Introducing i-Metrics Asia-Pacific Corporation and Strate...
Janette Toral
 
Datàaaaaaaaaaengineeeeeeeeeeeeeeeeeeeeeee
juadsr96
 
MENU-DRIVEN PROGRAM ON ARUNACHAL PRADESH.pptx
manvi200807
 
Comparative Study of ML Techniques for RealTime Credit Card Fraud Detection S...
Debolina Ghosh
 
covid 19 data analysis updates in our municipality
RhuAyungon1
 
Predicting Titanic Survival Presentation
praxyfarhana
 
Discrete Logarithm Problem in Cryptography (1).pptx
meshablinx38
 
Data Analytics using sparkabcdefghi.pptx
KarkuzhaliS3
 
Monitoring Improvement ( Pomalaa Branch).pptx
fajarkunee
 
big data eco system fundamentals of data science
arivukarasi
 
办理学历认证InformaticsLetter新加坡英华美学院毕业证书,Informatics成绩单
Taqyea
 
Group 5_RMB Final Project on circular economy
pgban24anmola
 
Generative AI Boost Data Governance and Quality- Tejasvi Addagada
Tejasvi Addagada
 
Exploiting the Low Volatility Anomaly: A Low Beta Model Portfolio for Risk-Ad...
Bradley Norbom, CFA
 
5- Global Demography Concepts _ Population Pyramids .pdf
pkhadka824
 
GOOGLE ADS (1).pdf THE ULTIMATE GUIDE TO
kushalkeshwanisou
 
RESEARCH-FINAL-GROUP-3, about the final .pptx
gwapokoha1
 
UNISE-Operation-Procedure-InDHIS2trainng
ahmedabduselam23
 
Loading Data into Snowflake (Bulk & Stream)
Accentfuture
 
SaleServicereport and SaleServicereport
2251330007
 
Unlocking Insights: Introducing i-Metrics Asia-Pacific Corporation and Strate...
Janette Toral
 
Ad

Binary search Algorithm

  • 2. • Usama Ashafq • Zaigham Abbas • Fazal ur Rehman • Umer Sarwar
  • 4. 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.
  • 5. 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 sub-arrays reduces to zero. Binary search works only on a sorted set of elements. To use binary search on a collection, the collection must first be sorted. When binary search is used to perform operations on a sorted set, the number of iterations can always be reduced on the basis of the value that is being searched.
  • 6. Algorithm Algorithm is quite simple. It can be done either recursively or iteratively: 1. get the middle element; 2. if the middle element equals to the searched value, the algorithm stops; 3. otherwise, two cases are possible: *searched value is less, than the middle element. In this case, go to the step 1 for the part of the array, before middle element. *searched value is greater, than the middle element. In this case, go to the step 1 for the part of the array, after middle element.
  • 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. First, we shall determine half of the array by using this formula − mid = low + (high - low) / 2 Here it is, 0 + (9 - 0 ) / 2 = 4 (integer value of 4.5). So, 4 is the mid of the array.
  • 9. 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. We change our low to mid + 1 and find the new mid value again. low = mid + 1 mid = low + (high - low) / 2 Our new mid is 7 now. We compare the value stored at location 7 with our target value 31.
  • 10. We compare the value stored at location 5 with our target value. We find that it is a match. We conclude that the target value 31 is stored at location 5. Binary search halves the searchable items and thus reduces the count of comparisons to be made to very less numbers.
  • 11. 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. Hence, we calculate the mid again. This time it is 5.
  • 12. Examples Example 1. Find 6 in {-1, 5, 6, 18, 19, 25, 46, 78, 102, 114}. Step 1 (middle element is 19 > 6): - 1 5 6 18 19 25 46 78 102 114 Step 2 (middle element is 5 < 6): - 1 5 6 18 19 25 46 78 102 114 Step 3 (middle element is 6 == 6): - 1 5 6 18 19 25 46 78 102 114
  • 13. • #include<iostream> • Using namespace std; • Int main() • { • Int a[100]; • Int n, I, beg, ed, mid; • Cout<<“enter no of elements:”; • Cin>>n; • Cout<<“enter sorted elements:n”; • for(i=1;i<=n;i++) • { • Cin>>a[i]; • }
  • 15. • Ed=mid-1; • mid=(beg+end)/2; • } • If(a[mid]==item) • { • cout<<“item found at location:n”; • } • Else • cout<<“data not found”; • cout<<“nnn****************end of program***************nnn”; • }
  • 17.  Binary search is much faster then linear search.  Binary search takes an average log2(n) , whereas linear search is n/2.  Binary search on average of 20 , whereas linear search is 500,000 comparisons.
  • 18.  It works only on sorted list, otherwise it is not applicable.  There is a great loss of efficiency if the list does not support random access.  It is more complicated then linear search.