SlideShare a Scribd company logo
Searching 
algorithm
Searching Algorithms 
• Necessary components to search a list of data 
– Array containing the list 
– Length of the list 
– Item for which you are searching 
• After search completed 
– If item found, report “success,” return location in array 
– If item not found, report “not found” or “failure”
Searching Algorithms (Cont’d) 
• Suppose that you want to determine whether 27 is in the list 
• First compare 27 with list[0]; that is, compare 27 with 35 
• Because list[0] ≠ 27, you then compare 27 with list[1] 
• Because list[1] ≠ 27, you compare 27 with the next element in 
the list 
• Because list[2] = 27, the search stops 
• This search is successful! 
Figure 1: Array list with seven (07) elements
Searching Algorithms (Cont’d) 
Let’s now search for 10 
The search starts at the first element in the list; that is, at 
list[0] 
Proceeding as before, we see that this time the search item, 
which is 10, is compared with every item in the list 
Eventually, no more data is left in the list to compare with 
the search item; this is an unsuccessful search
Sequential Search Algorithm 
The previous could be further reduced to: 
public static int linSearch(int[] list, int listLength, int key) { 
int loc; 
boolean found = false; 
for(int loc = 0; loc < listLength; loc++) { 
if(list[loc] == key) { 
found = true; 
break; 
} 
} 
if(found) 
return loc; 
else 
return -1; 
}
Sequential Search Algorithm (Cont’d) 
public static int linSearch(int[] list, int listLength, int key) { 
int loc; 
for(int loc = 0; loc < listLength; loc++) { 
if(list[loc] == key) 
return loc; 
} 
return -1; 
}
Sequential Search Algorithm (Cont’d) 
• Using a while (or a for) loop, the definition of the method 
seqSearch can also be written without the break statement as: 
public static int linSearch(int[] list, int listLength, int key) { 
int loc = 0; 
boolean found = false; 
while(loc < listLength && !found) { 
if(list[loc] == key) 
found = true; 
else 
loc++ 
} 
if(found) 
return loc; 
else 
return -1; 
}
Performance of the Sequential Search 
• Suppose that the first element in the array list contains the 
variable key, then we have performed one comparison to find 
the key. 
• Suppose that the second element in the array list contains the 
variable key, then we have performed two comparisons to find 
the key. 
• Carry on the same analysis till the key is contained in the last 
element of the array list. In this case, we have performed N 
comparisons (N is the size of the array list) to find the key. 
• Finally if the key is NOT in the array list, then we would have 
performed N comparisons and the key is NOT found and we 
would return -1.
Performance of the Sequential Search (Cont’d) 
• Therefore, the best case is: 1 
• And, the worst case is: N 
• The average case is: 
1 + 2 + 3 + …..+ N + N 
N+1 
Best case 
Average Number of 
Comparisons 
Worst case and key found at the end of 
the array list! 
Worst case and key is NOT found! 
= 
Number of possible cases
Binary Search Algorithm 
Can only be performed on a sorted list !!! 
Uses divide and conquer technique to search list
Binary Search Algorithm (Cont’d) 
Search item is compared with middle element of list 
If search item < middle element of list, search is restricted 
to first half of the list 
If search item > middle element of list, search second half 
of the list 
If search item = middle element, search is complete
Binary Search Algorithm (Cont’d) 
• Determine whether 75 is in the list 
Figure 2: Array list with twelve (12) elements 
Figure 3: Search list, list[0] … list[11]
Binary Search Algorithm (Cont’d) 
Figure 4: Search list, list[6] … list[11]
Binary Search Algorithm (Cont’d) 
public static int binarySearch(int[] list, int listLength, int key) { 
int first = 0, last = listLength - 1; 
int mid; 
boolean found = false; 
while (first <= last && !found) { 
mid = (first + last) / 2; 
if (list[mid] == key) 
found = true; 
else 
if(list[mid] > key) 
last = mid - 1; 
else 
first = mid + 1; 
} 
if (found) 
return mid; 
else 
return –1; 
} //end binarySearch
Binary Search Algorithm (Cont’d) 
Figure 5: Sorted list for binary search 
key = 89 
key = 34
Binary Search Algorithm (Cont’d) 
key = 22 
Figure 6: Sorted list for binary search
Indexed Search 
• Indexes: Data structures to organize records to 
optimize certain kinds of retrieval operations. 
o Speed up searches for a subset of records, based on values in 
certain (“search key”) fields 
o Updates are much faster than in sorted files.
Alternatives for Data Entry k* in 
Index 
Data Entry : Records stored in index file 
Given search key value k, provide for efficient retrieval of 
all data entries k* with value k. 
In a data entry k* , alternatives include that we can store: 
 alternative 1: Full data record with key value k, or 
 alternative 2: <k, rid of data record with search key value k>, or 
 alternative 3: <k, list of rids of data records with search key k> 
Choice of above 3 alternative data entries is orthogonal to indexing 
technique used to locate data entries. 
 Example indexing techniques: B+ trees, hash-based structures, etc.
Alternatives for Data Entries 
Alternative 1: Full data record with key value k 
Index structure is file organization for data records (instead 
of a Heap file or sorted file). 
At most one index on a given collection of data records 
can use Alternative 1. 
Otherwise, data records are duplicated, leading to 
redundant storage and potential inconsistency. 
If data records are very large, this implies size of auxiliary 
information in index is also large.
Alternatives for Data Entries 
Alternatives 2 (<k, rid>) and 3 (<k, list-of-rids>): 
Data entries typically much smaller than data records. 
Comparison: 
Both better than Alternative 1 with large data records, 
especially if search keys are small. 
Alternative 3 more compact than Alternative 2, 
but leads to variable sized data entries even if search keys 
are of fixed length.
Index Classification 
Clustered vs. unclustered index : 
If order of data records is the same as, or `close to’, 
order of data entries, then called clustered index.
Index Clustered vs Unclustered 
Observation 1: 
Alternative 1 implies clustered. True ? 
Observation 2: 
In practice, clustered also implies Alternative 1 (since 
sorted files are rare). 
Observation 3: 
A file can be clustered on at most one search key. 
Observation 4: 
Cost of retrieving data records through index varies 
greatly based on whether index is clustered or not !!
Index Clustered vs Unclustered 
Observation 1: 
Alternative 1 implies clustered. True ? 
Observation 2: 
In practice, clustered also implies Alternative 1 (since 
sorted files are rare). 
Observation 3: 
A file can be clustered on at most one search key. 
Observation 4: 
Cost of retrieving data records through index varies 
greatly based on whether index is clustered or not !!
Clustered vs. Unclustered Index 
Index entries 
CLUSTERED direct search for 
UNCLUSTERED 
data entries 
Data entries 
(Index File) 
(Data file) 
Data Records 
Data entries 
Data Records 
Suppose Alternative (2) is used for data entries.
Clustered vs. Unclustered Index 
Use Alternative (2) for data entries 
Data records are stored in Heap file. 
To build clustered index, first sort the Heap file 
Overflow pages may be needed for inserts. 
Thus, order of data recs is close to (not identical to) 
sort order. 
Index entries 
CLUSTERED direct search for 
UNCLUSTERED 
data entries 
Data entries 
(Index File) 
(Data file) 
Data Records 
Data entries 
Data Records
Summary of Index Search 
Many alternative file organizations exist, each appropriate in 
some situation. 
If selection queries are frequent, sorting the file or building an 
index is important. 
 Hash-based indexes only good for equality search. 
 Sorted files and tree-based indexes best for range search; also 
good for equality search. 
 Files rarely kept sorted in practice; B+ tree index is better. 
Index is a collection of data entries plus a way to quickly find 
entries with given key values.
Summary of Index Search 
 Data entries can be : 
 actual data records, 
 <key, rid> pairs, or 
 <key, rid-list> pairs. 
 Can have several indexes on a given file of data 
records, each with a different search key. 
 Indexes can be classified as clustered vs. unclustered, 
 Differences have important consequences for 
utility/performance of query processing
THANK YOU….. !!!

More Related Content

PDF
Algorithms Lecture 6: Searching Algorithms
PPTX
Linear search-and-binary-search
PPTX
Searching techniques in Data Structure And Algorithm
PPTX
Programming language
PPT
Lecture 1 data structures and algorithms
PPTX
Nanotechnology ppt
PPTX
SHA- Secure hashing algorithm
PDF
Searching and Sorting Techniques in Data Structure
Algorithms Lecture 6: Searching Algorithms
Linear search-and-binary-search
Searching techniques in Data Structure And Algorithm
Programming language
Lecture 1 data structures and algorithms
Nanotechnology ppt
SHA- Secure hashing algorithm
Searching and Sorting Techniques in Data Structure

What's hot (20)

PDF
linear search and binary search
PPTX
Linear Search Presentation
PDF
Sorting Algorithms
PPTX
Hashing in datastructure
PPTX
Selection sorting
PPTX
Rahat &amp; juhith
PPTX
Linked List
PPTX
Doubly Linked List
PPTX
Linear and Binary search
PPTX
Searching
PPTX
Linear Search Data Structure
PPTX
Hashing
PPTX
Binary search
PPTX
Priority Queue in Data Structure
PPTX
Binary Tree in Data Structure
PPTX
single linked list
PDF
Binary Search - Design & Analysis of Algorithms
PDF
Linear search algorithm
PPTX
PPTX
Sorting Algorithms
linear search and binary search
Linear Search Presentation
Sorting Algorithms
Hashing in datastructure
Selection sorting
Rahat &amp; juhith
Linked List
Doubly Linked List
Linear and Binary search
Searching
Linear Search Data Structure
Hashing
Binary search
Priority Queue in Data Structure
Binary Tree in Data Structure
single linked list
Binary Search - Design & Analysis of Algorithms
Linear search algorithm
Sorting Algorithms
Ad

Viewers also liked (20)

PPTX
Data Structures - Lecture 8 [Sorting Algorithms]
PDF
Sdd HSC Summary
PPTX
Meta Languages Railroad Diagrams
PDF
Desk Chekcing Algorithms
PPTX
Meta Languages Bnf Ebnf Student Version
PDF
Exam feedback term 1 2011
PPT
Algorithms Vs Meta Language
PPTX
How We Got Where We Are: 40 Years of Planning...
PPTX
History of Google Local from 2004-2011
PPTX
Sorting pnk
PPT
Google
PDF
A history of science (volume 1)
KEY
Introduction to "Origins, Evolution & Creation"
PPTX
CSS 3, Style and Beyond
PPT
Introduction to Information Technology ch 02_a
PDF
Algorithms - Aaron Bloomfield
PPT
Google at a glance 1998 - 2008
KEY
The Scientific Revolution
PPTX
National Air And Space Museum Washington DC
PPTX
Was There A Darwinian Revolution
Data Structures - Lecture 8 [Sorting Algorithms]
Sdd HSC Summary
Meta Languages Railroad Diagrams
Desk Chekcing Algorithms
Meta Languages Bnf Ebnf Student Version
Exam feedback term 1 2011
Algorithms Vs Meta Language
How We Got Where We Are: 40 Years of Planning...
History of Google Local from 2004-2011
Sorting pnk
Google
A history of science (volume 1)
Introduction to "Origins, Evolution & Creation"
CSS 3, Style and Beyond
Introduction to Information Technology ch 02_a
Algorithms - Aaron Bloomfield
Google at a glance 1998 - 2008
The Scientific Revolution
National Air And Space Museum Washington DC
Was There A Darwinian Revolution
Ad

Similar to Searching algorithms (20)

PPT
Searching algorithms
PPT
Unit08 dbms
PPT
Data Structures 8
PPTX
Chapter 2 Sorting and Searching .pptx.soft
PPT
Chapter 14
PPT
06-search-ar121r11111ay-1-LinearBinary.ppt
PPTX
arrays in c
PPTX
Lecture 1 Abstract Data Types of Complexity Analysis of Big Oh Notation.pptx
PPTX
Lecture 1 Abstract Data Types of Complexity Analysis of Big Oh Notation.pptx
PPTX
Searching & Algorithms IN DATA STRUCTURES
PPT
9780324782011_PPT_ch09.ppt
PPTX
Data structure &amp; algorithms introduction
DOCX
Datastructures and algorithms prepared by M.V.Brehmanada Reddy
PPT
Chap10
PPTX
Data structures in c#
PDF
Data Structure & Algorithms - Operations
PPTX
data structures and algorithms Unit 3
PPTX
Data structure unit I part B
PPTX
searching techniques.pptx
PPT
data structures queue stack insert and delete time complexity
Searching algorithms
Unit08 dbms
Data Structures 8
Chapter 2 Sorting and Searching .pptx.soft
Chapter 14
06-search-ar121r11111ay-1-LinearBinary.ppt
arrays in c
Lecture 1 Abstract Data Types of Complexity Analysis of Big Oh Notation.pptx
Lecture 1 Abstract Data Types of Complexity Analysis of Big Oh Notation.pptx
Searching & Algorithms IN DATA STRUCTURES
9780324782011_PPT_ch09.ppt
Data structure &amp; algorithms introduction
Datastructures and algorithms prepared by M.V.Brehmanada Reddy
Chap10
Data structures in c#
Data Structure & Algorithms - Operations
data structures and algorithms Unit 3
Data structure unit I part B
searching techniques.pptx
data structures queue stack insert and delete time complexity

More from Trupti Agrawal (6)

PPTX
Trees (data structure)
PPTX
Sorting algorithms
PPT
Linked list
PPT
Stacks and queues
PPTX
PPTX
Data structure and algorithm
Trees (data structure)
Sorting algorithms
Linked list
Stacks and queues
Data structure and algorithm

Recently uploaded (20)

PDF
VCE English Exam - Section C Student Revision Booklet
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Weekly quiz Compilation Jan -July 25.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
01-Introduction-to-Information-Management.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Cell Structure & Organelles in detailed.
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
Lesson notes of climatology university.
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Cell Types and Its function , kingdom of life
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
VCE English Exam - Section C Student Revision Booklet
O7-L3 Supply Chain Operations - ICLT Program
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Weekly quiz Compilation Jan -July 25.pdf
Anesthesia in Laparoscopic Surgery in India
01-Introduction-to-Information-Management.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Cell Structure & Organelles in detailed.
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
Lesson notes of climatology university.
Microbial diseases, their pathogenesis and prophylaxis
Cell Types and Its function , kingdom of life
Final Presentation General Medicine 03-08-2024.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Orientation - ARALprogram of Deped to the Parents.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3

Searching algorithms

  • 2. Searching Algorithms • Necessary components to search a list of data – Array containing the list – Length of the list – Item for which you are searching • After search completed – If item found, report “success,” return location in array – If item not found, report “not found” or “failure”
  • 3. Searching Algorithms (Cont’d) • Suppose that you want to determine whether 27 is in the list • First compare 27 with list[0]; that is, compare 27 with 35 • Because list[0] ≠ 27, you then compare 27 with list[1] • Because list[1] ≠ 27, you compare 27 with the next element in the list • Because list[2] = 27, the search stops • This search is successful! Figure 1: Array list with seven (07) elements
  • 4. Searching Algorithms (Cont’d) Let’s now search for 10 The search starts at the first element in the list; that is, at list[0] Proceeding as before, we see that this time the search item, which is 10, is compared with every item in the list Eventually, no more data is left in the list to compare with the search item; this is an unsuccessful search
  • 5. Sequential Search Algorithm The previous could be further reduced to: public static int linSearch(int[] list, int listLength, int key) { int loc; boolean found = false; for(int loc = 0; loc < listLength; loc++) { if(list[loc] == key) { found = true; break; } } if(found) return loc; else return -1; }
  • 6. Sequential Search Algorithm (Cont’d) public static int linSearch(int[] list, int listLength, int key) { int loc; for(int loc = 0; loc < listLength; loc++) { if(list[loc] == key) return loc; } return -1; }
  • 7. Sequential Search Algorithm (Cont’d) • Using a while (or a for) loop, the definition of the method seqSearch can also be written without the break statement as: public static int linSearch(int[] list, int listLength, int key) { int loc = 0; boolean found = false; while(loc < listLength && !found) { if(list[loc] == key) found = true; else loc++ } if(found) return loc; else return -1; }
  • 8. Performance of the Sequential Search • Suppose that the first element in the array list contains the variable key, then we have performed one comparison to find the key. • Suppose that the second element in the array list contains the variable key, then we have performed two comparisons to find the key. • Carry on the same analysis till the key is contained in the last element of the array list. In this case, we have performed N comparisons (N is the size of the array list) to find the key. • Finally if the key is NOT in the array list, then we would have performed N comparisons and the key is NOT found and we would return -1.
  • 9. Performance of the Sequential Search (Cont’d) • Therefore, the best case is: 1 • And, the worst case is: N • The average case is: 1 + 2 + 3 + …..+ N + N N+1 Best case Average Number of Comparisons Worst case and key found at the end of the array list! Worst case and key is NOT found! = Number of possible cases
  • 10. Binary Search Algorithm Can only be performed on a sorted list !!! Uses divide and conquer technique to search list
  • 11. Binary Search Algorithm (Cont’d) Search item is compared with middle element of list If search item < middle element of list, search is restricted to first half of the list If search item > middle element of list, search second half of the list If search item = middle element, search is complete
  • 12. Binary Search Algorithm (Cont’d) • Determine whether 75 is in the list Figure 2: Array list with twelve (12) elements Figure 3: Search list, list[0] … list[11]
  • 13. Binary Search Algorithm (Cont’d) Figure 4: Search list, list[6] … list[11]
  • 14. Binary Search Algorithm (Cont’d) public static int binarySearch(int[] list, int listLength, int key) { int first = 0, last = listLength - 1; int mid; boolean found = false; while (first <= last && !found) { mid = (first + last) / 2; if (list[mid] == key) found = true; else if(list[mid] > key) last = mid - 1; else first = mid + 1; } if (found) return mid; else return –1; } //end binarySearch
  • 15. Binary Search Algorithm (Cont’d) Figure 5: Sorted list for binary search key = 89 key = 34
  • 16. Binary Search Algorithm (Cont’d) key = 22 Figure 6: Sorted list for binary search
  • 17. Indexed Search • Indexes: Data structures to organize records to optimize certain kinds of retrieval operations. o Speed up searches for a subset of records, based on values in certain (“search key”) fields o Updates are much faster than in sorted files.
  • 18. Alternatives for Data Entry k* in Index Data Entry : Records stored in index file Given search key value k, provide for efficient retrieval of all data entries k* with value k. In a data entry k* , alternatives include that we can store:  alternative 1: Full data record with key value k, or  alternative 2: <k, rid of data record with search key value k>, or  alternative 3: <k, list of rids of data records with search key k> Choice of above 3 alternative data entries is orthogonal to indexing technique used to locate data entries.  Example indexing techniques: B+ trees, hash-based structures, etc.
  • 19. Alternatives for Data Entries Alternative 1: Full data record with key value k Index structure is file organization for data records (instead of a Heap file or sorted file). At most one index on a given collection of data records can use Alternative 1. Otherwise, data records are duplicated, leading to redundant storage and potential inconsistency. If data records are very large, this implies size of auxiliary information in index is also large.
  • 20. Alternatives for Data Entries Alternatives 2 (<k, rid>) and 3 (<k, list-of-rids>): Data entries typically much smaller than data records. Comparison: Both better than Alternative 1 with large data records, especially if search keys are small. Alternative 3 more compact than Alternative 2, but leads to variable sized data entries even if search keys are of fixed length.
  • 21. Index Classification Clustered vs. unclustered index : If order of data records is the same as, or `close to’, order of data entries, then called clustered index.
  • 22. Index Clustered vs Unclustered Observation 1: Alternative 1 implies clustered. True ? Observation 2: In practice, clustered also implies Alternative 1 (since sorted files are rare). Observation 3: A file can be clustered on at most one search key. Observation 4: Cost of retrieving data records through index varies greatly based on whether index is clustered or not !!
  • 23. Index Clustered vs Unclustered Observation 1: Alternative 1 implies clustered. True ? Observation 2: In practice, clustered also implies Alternative 1 (since sorted files are rare). Observation 3: A file can be clustered on at most one search key. Observation 4: Cost of retrieving data records through index varies greatly based on whether index is clustered or not !!
  • 24. Clustered vs. Unclustered Index Index entries CLUSTERED direct search for UNCLUSTERED data entries Data entries (Index File) (Data file) Data Records Data entries Data Records Suppose Alternative (2) is used for data entries.
  • 25. Clustered vs. Unclustered Index Use Alternative (2) for data entries Data records are stored in Heap file. To build clustered index, first sort the Heap file Overflow pages may be needed for inserts. Thus, order of data recs is close to (not identical to) sort order. Index entries CLUSTERED direct search for UNCLUSTERED data entries Data entries (Index File) (Data file) Data Records Data entries Data Records
  • 26. Summary of Index Search Many alternative file organizations exist, each appropriate in some situation. If selection queries are frequent, sorting the file or building an index is important.  Hash-based indexes only good for equality search.  Sorted files and tree-based indexes best for range search; also good for equality search.  Files rarely kept sorted in practice; B+ tree index is better. Index is a collection of data entries plus a way to quickly find entries with given key values.
  • 27. Summary of Index Search  Data entries can be :  actual data records,  <key, rid> pairs, or  <key, rid-list> pairs.  Can have several indexes on a given file of data records, each with a different search key.  Indexes can be classified as clustered vs. unclustered,  Differences have important consequences for utility/performance of query processing