Top Banner
Data Structures Using C++ 1 Search Algorithms Sequential Search (Linear Search) Binary Search
18

Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Dec 31, 2015

Download

Documents

Joy Young
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 1

Search Algorithms

Sequential Search (Linear Search)Binary Search

Page 2: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 2

Sequential SearchSequential SearchO (n)O (n)

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

Page 3: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 3

Sequential SearchSequential Search

bool LinSearch(double x[ ], int n, double item){

for(int i=0;i<n;i++){

if(x[i]==item) return true;

else return false;

}

return false;

}

Page 4: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 4

Search AlgorithmsSearch AlgorithmsSuppose that there are n elements in the array. The following expression gives the average number of comparisons:

It is known that

Therefore, the following expression gives the average number of comparisons made by the sequential search in the successful case:

Page 5: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 5

Search AlgorithmsSearch Algorithms

Page 6: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 6

Binary SearchBinary SearchO(log2 n)O(log2 n)

A binary search looks for an item in a list using a divide-and-conquer strategy

Page 7: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 7

Binary SearchBinary 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

Page 8: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 8

Binary SearchBinary Search

Page 9: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 9

Binary Search: middle Binary Search: middle elementelement

left + right

2mid =

Page 10: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 10

Binary SearchBinary Searchbool BinSearch(double list[ ], int n, double 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;

}

Page 11: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 11

Binary Search: ExampleBinary Search: Example

Page 12: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 12

Binary SearchBinary Search

Page 13: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 13

Binary SearchBinary Search

Page 14: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 14

Binary Search TreeBinary Search Tree

Page 15: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 15

Binary Search TreeBinary Search TreeO(log2 n)O(log2 n)

bool search(Node * root, int id) { bool found = false; if(root == NULL) return false; if(root->data == id) {

cout<<" The node is found "<<endl; found = true;

} if(!found) found = search(root->left, id); if(!found) found = search(root->right, id); return found;

}

Page 16: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 16

Binary Search TreeBinary Search Tree

Page 17: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 17

Binary Search TreeBinary Search Tree

Page 18: Data Structures Using C++1 Search Algorithms Sequential Search (Linear Search) Binary Search.

Data Structures Using C++ 18

Binary Search TreeBinary Search Tree