Selection Sort
• Selection sort a classic computer algorithm that is used to sort an array
• The selection sort algorithm can be used to sort any data set where there is an ordering among the data items.
Example Problem
• You are given the following 5 numbers:6.4 2.5 1.2 2.2 1.1
• Sort the number in ascending order. I.e., form the following sequence:
1.1 1.2 2.2 2.5 6.4
Overview of the Algorithm (1)
• Find the minimum value in the list of number
• Swap the minimum value with the value in the first position
Overview of the Algorithm (2)
• Repeat the steps above for the remainder of the list
• (starting at the second position and advancing each time)
Pseudo code of the Selection Sort algorithm (1)
• Let: a = array containing the values
• Let: n = # of elements
• 1. Find the array element with the min. value among a[0], a[1], ..., a[n-1];
• 2. Swap this element with a[0]
Pseudo code of the Selection Sort algorithm (2)
• Repeat:
• 1. Find the array element with the min. value among a[1], ..., a[n-1];
• 2. Swap this element with a[1];
Pseudo code of the Selection Sort algorithm (3)
• Repeat:
• 1. Find the array element with the min. value among a[2], ..., a[n-1];
• 2. Swap this element with a[2];
• And so on (until we reach the last element in the array)
2 (smaller) Problems
• Find the array element with the min. value among a[i], ..., a[n-1] (for some given value i)
• Swap two array elements
Solving Subproblem 1 (1)
Given the array elements a[i], a[i+1], ..., a[n-1] (n = a.length):
Find the array element with the minimum value among the array elements a[i], a[i+1], ..., a[n-1]
Refine the Selection Sort algorithm.
• We have just develop an algorithm to solve subproblem 1.
• Insert the algorithm and we obtain a more refined (more detailed) algorithm:
Solution: the 3-way exchange algorithm (1)
• Imagine you have 2 cups named A and B and each cup contains some liquids (different kinds of liquid in different cups):
Solution: the 3-way exchange algorithm (3)
• Pour cup A into the help cup
(this will free up cup A)
• Pour cup B into cup A
(now cup A has the correct content and it will free up cup B)
• Finally, pour the help cup into cup B
(now cup B also has the correct content)
Top Related