Searching an Array – Sequential SearchLecture 33
Sections 9.1 - 9.2
Robb T. Koether
Hampden-Sydney College
Wed, Nov 28, 2012
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 1 / 14
1 Sequential Search
2 The Sequential Search Algorithm
3 Efficiency
4 Assignment
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 2 / 14
Outline
1 Sequential Search
2 The Sequential Search Algorithm
3 Efficiency
4 Assignment
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 3 / 14
Searching for a Value in an Array
The ProblemLocate a value in an array.
ReportWhether the value was found, andWhere it was found.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 4 / 14
The Sequential Search
If the list is not sortedUse a sequential search.Runs in O(n) time.Relatively inefficient.Suitable for small and medium size lists.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 5 / 14
Outline
1 Sequential Search
2 The Sequential Search Algorithm
3 Efficiency
4 Assignment
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 6 / 14
The Sequential Search Algorithm
Make 1 pass.Compare the value to each element.Quit when a match is found or when the end of the list is reached.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 7 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
21
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
321
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
4321
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
432 51
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
43 62 51
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
4 73 62 51
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 73 62 51
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 73 62 51 9
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 73 62 1051 9
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 73 1162 1051 9
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 1273 1162 1051 9
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 1273 1162 1051 9 13
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 1273 1162 1051 9 1413
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Analysis of the Sequential Search
15 20 2532 3640 4850 5563 6470 8490 96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
84 1273 1162 1051 9 1413 15
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 8 / 14
Outline
1 Sequential Search
2 The Sequential Search Algorithm
3 Efficiency
4 Assignment
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 9 / 14
Analysis of the Sequential Search
Best case: 1 comparison.Worst case: 15 comparisons.Average case: (1 + 2 + 3 + · · · + 15)/15 = 8 comparisons.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 10 / 14
Efficiency of the Sequential Search
Best case requires 1 comparison.Worst case requires n comparisons.Average case requires (n + 1)/2 comparisons.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 11 / 14
Examples of a Sequential Search
ExamplesSequentialSearch.cppSequentialSearchCounter.cppSequentialSearchTimer.cpp
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 12 / 14
Outline
1 Sequential Search
2 The Sequential Search Algorithm
3 Efficiency
4 Assignment
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 13 / 14
Assignment
AssignmentRead Sections 9.1 - 9.2.
Robb T. Koether (Hampden-Sydney College) Searching an Array – Sequential Search Wed, Nov 28, 2012 14 / 14