data structures: a pseudocode approach with c, second edition 1 chapter 13 objectives upon...

Post on 13-Dec-2015

266 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Data Structures: A Pseudocode Approach with C, Second Edition 1

Chapter 13Chapter 13

Objectives

Upon completion you will be able to:

• Design and implement sequential searches• Discuss the relative merits of different sequential searches• Design and implement binary searches• Design and implement hash-list searches• Discuss the merits of different collision resolution algorithms

SearchingSearching

Data Structures: A Pseudocode Approach with C, Second Edition 2

13-1 List Searches

In this section we study searches that work with arrays. The two In this section we study searches that work with arrays. The two basic searches for arrays are the sequential search and the basic searches for arrays are the sequential search and the binary search.binary search.

• Sequential Search• Variations on Sequential Searches• Binary Search• Analyzing Search Algorithms

Data Structures: A Pseudocode Approach with C, Second Edition 3

Searching

The process used to find the location of a target among a list of objects.

Data Structures: A Pseudocode Approach with C, Second Edition 4

List searches

Sequential search Variations of sequential search

Sentinel search Probability search Ordered list search

Binary search

Data Structures: A Pseudocode Approach with C, Second Edition 5

Sequential search

The sequential search is used whenever the list is not ordered.

Data Structures: A Pseudocode Approach with C, Second Edition 6

Successful search of an unordered list

Data Structures: A Pseudocode Approach with C, Second Edition 7

Unsuccessful search in unordered list

Data Structures: A Pseudocode Approach with C, Second Edition 8

Sequential search algorithm

Data Structures: A Pseudocode Approach with C, Second Edition 9

Variations on sequential searches Sentinel search Probability search

The data in the array are arranged with the most probable search elements at the beginning of the array and the least probable at the end.

Ordered list search

Data Structures: A Pseudocode Approach with C, Second Edition 10

Sentinel search algorithm

Data Structures: A Pseudocode Approach with C, Second Edition 11

Probability search algorithm

Data Structures: A Pseudocode Approach with C, Second Edition 12

Ordered list search algorithm

Data Structures: A Pseudocode Approach with C, Second Edition 13

Binary search

The list must be sorted. The list starts to become large.

Contains more than 16 elements.

mid = (begin + end) / 2

Data Structures: A Pseudocode Approach with C, Second Edition 14

Binary search example

2

2

lastfirstmid

endbeginmid

Data Structures: A Pseudocode Approach with C, Second Edition 15

Figure 2-5

Unsuccessful binary search example

Data Structures: A Pseudocode Approach with C, Second Edition 16

Data Structures: A Pseudocode Approach with C, Second Edition 17

(continued)

Data Structures: A Pseudocode Approach with C, Second Edition 18

Analyzing search algorithms

The efficiency of the sequential search is O(n).

The efficiency of the binary search is O(log n).

List size Iterations

binary sequential

16 4 16

50 6 50

256 8 256

1000 10 1000

10000 14 10000

100000 17 100000

1000000 20 1000000

Data Structures: A Pseudocode Approach with C, Second Edition 19

13-2 Search Implementations

Having discussed the basic concepts of array searches, we write Having discussed the basic concepts of array searches, we write C implementations of the two most common.C implementations of the two most common.

• Sequential Search in C• Binary Search In C

Data Structures: A Pseudocode Approach with C, Second Edition 20

Sequential Search in C

Data Structures: A Pseudocode Approach with C, Second Edition 21

Data Structures: A Pseudocode Approach with C, Second Edition 22

Binary Search In C

Data Structures: A Pseudocode Approach with C, Second Edition 23

top related