topic 9b – array sorting and searching. cisc105 – topic 9b algorithms an algorithm is a set of...

16
Topic 9B – Array Sorting and Searching

Post on 21-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

Topic 9B –Array Sorting and Searching

Page 2: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Algorithms An algorithm is a set of steps that can

be followed to solve a problem. Designed and developing an

algorithm is often the most difficult part of the problem-solving process.

For each problem, there can be many different algorithms that correctly solve the problem.

Page 3: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Algorithms Some algorithms may do so faster than

others that do the same thing (algorithms that solve the same problem may vary in efficiency).

Some algorithms may be easier to understand and may “make more sense” than others that do the same thing (algorithms that solve the same problem may vary in complexity).

Page 4: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Introduction to Sorting Many of the algorithms that operate on data

contained within an array require the data in that array to be sorted.

This means that the data contained in the array needs to be in order, from lowest-to-highest, or vice versa.

We will examine a simple technique for putting the array in lowest-to-highest order.

Note that once this problem is solved, the reverse, putting the array in highest-to-lowest order, is trivial.

Page 5: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Introduction to Sorting There are many approaches to

sorting. Some sorting algorithms are much

better than others. We will examine one of the simplest

sorting algorithms, a selection sort. This algorithm is intuitive (easy-to-

understand), although it is not very efficient.

Page 6: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Selection Sort:The Basic Idea The basic idea of the selection sort is to

process the array from left-to-right (index 0, index 1, etc…)

At each element, we look to the right and find the lowest value. Once we find the lowest value (to the right of the current element), we swap the two elements.

Then, we move onto the next element and repeat the process.

Page 7: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Selection Sort:The Algorithm(1) current_element = 0(2) Find index_of_min, the index of the

smallest element in the subarray, array[current_element] to array[size – 1]

(3) If current_element does not equal index_of_min, swap elements at current_element and index_of_min

(4) If current_element = size – 1 , stop. Else current_element++ & goto step (2)

Page 8: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Selection Sort : An Example

24 98 4 3 55 62

X[1] X[2] X[3] X[4] X[5]X[0]

3 24 4 9824 98 9855 9862

Page 9: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Sorting Algorithms Keep in mind that a selection sort is

simply one method of sorting an array. It is a very simple-to-understand

approach. It is also not very efficient. Other sorting algorithms that are much

more efficient, although much harder-to-understand, include the bubble sort and the quicksort. We will not discuss these algorithms.

Page 10: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Introduction to Searching Searching an array is a closely related

problem to sorting an array. The simplest approach to array searching is

the linear search. This searching method consists of

examining the array elements from left to right.

If the target is found, we save the index it was found at and stop. If not, and there are still more array elements to the right, we move to the next element and repeat.

Page 11: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

The Linear Search Thus, we simply start at index 0

and see if the target is there. If so, we stop.

If not, we move to index 1 and see if the target is there.

If not, we move to index 2 and see if the target is there.

etc…

Page 12: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Linear Search: An Example

24 98 4 3 55 62

X[1] X[2] X[3] X[4] X[5]X[0]

55 is located at index 4!

We will perform a linear search on the array X in orderto find the target value of 55.

Page 13: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Searching Algorithms The linear search is not a very

efficient algorithm. Notice that this algorithm does not

depend on, or require, that the array is sorted, or in any order at all.

If the array is sorted, we can use a much more efficient searching algorithm, the binary search.

Page 14: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

The Binary Search The binary search is very intuitive.(1) Begin with the entire array(2) Select the middle element. (3) If the target is less than the middle element,

choose the next subarray to be the half of the array to the left (smaller than) the middle element. If the target is greater than the middle element, choose the next subarray to be the half of the array to the right (greater than) the middle element.

(4) Then, repeat on the new subarray.

Page 15: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Binary Search: An Example

3 4 24 25 55 62

X[1] X[2] X[3] X[4] X[5]X[0]

55 is located at index 4!

98

X[6]

We will perform a binary search on the array X in orderto find the target value of 55.

Page 16: Topic 9B – Array Sorting and Searching. CISC105 – Topic 9B Algorithms An algorithm is a set of steps that can be followed to solve a problem. Designed

CISC105 – Topic 9B

Summary Searching and sorting arrays are

common problems in computer science. Both problems, like almost all problems,

have multiple solutions. Solutions vary on complexity and

efficiency. We have examined the selection sort,

the linear search, and the binary search.