0% found this document useful (0 votes)
4 views17 pages

Lecture 10

Uploaded by

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

Lecture 10

Uploaded by

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

Search Algorithms

Sequential Search (Linear Search)


Binary Search
Sequential Search

 A sequential search of a list/array begins


at the beginning of the list/array and
continues until the item is found or the
entire list/array has been searched

2
Sequential search

 The sequential search is used whenever


the list is not ordered.

3
Searching

 The process used to find the location of a


target among a list of objects.
e.g., where is 14?

4
Successful
search of an
unordered list

5
Unsuccessful
search in
unordered list

6
Sequential Search
int LinSearch(int x[ ], int n, int item){

for(int i=0;i<n;i++){
if(x[i]==item) return i;
else return -1;
}
}
Search Algorithms

8
Binary Search O(log2 n)

A binary search looks for an


item in a list using a divide-
and-conquer strategy

9
Binary Search
 Binary search algorithm assumes that the items
in the array being searched are sorted
 The algorithm begins at the middle of the array
in a binary search
 If the item for which we are searching is less
than the item in the middle, we know that the
item won’t be in the second half of the array
 Once again we examine the “middle” element
 The process continues with each comparison
cutting in half the portion of the array where the
item might be

10
Binary Search Algorithm (Cont’d)
• Determine whether 75 is in the list

Array list with twelve (12) elements

Search list, list[0] … list[11]


Binary Search Algorithm (Cont’d)

Search list, list[6] … list[11]


Binary Search: middle element

left + right
mid =
2

13
Binary
search
example

 begin  end 
mid  
 2 
 first  last 
mid  
 2 

14
Unsuccessful
binary
search
example

15
Binary Search
boolean BinSearch(int list[ ], int n, int item, int index){
int left=0; int right=n-1; int mid;

while(left<=right){
mid=(left+right)/2;
if(item> list [mid])
{ left=mid+1; }
else if(item< list [mid])
{right=mid-1;}
else{
Item= list [mid];
index=mid;
return true;
}
}// while
return false; }

16
Binary Search

17

You might also like