KEMBAR78
Selection sort | PPTX
SELECTION SORT
Description
A sorting technique that is typically used for
sequencing small lists.
 The Selection Sort searches (linear search) all of the
elements in a list until it finds the smallest element. It
“swaps” this with the first element in the list. Next it
finds the smallest of the remaining elements, and
“swaps” it with the second element.
The Selection Sort Algorithm
 For each index position i
– Find the smallest data value in the array
from positions i through length - 1, where
length is the number of data values
stored.
– Exchange (swap) the smallest value with
the value at position i.
A Selection Sort Example
We start by searching for the
smallest element in the List.
6
2
1
3
5
4
Smallest?
6
2
1
3
5
4
Smallest?
6
2
1
3
5
4
Smallest!
6
2
1
3
5
4
Swap!
1
2
6
3
5
4
Swapped!
1
2
6
3
5
4
Smallest?
After the smallest element is in the first
position, we continue searching with
the second element and look for the
next smallest element.
1
2
6
3
5
4
Smallest!
In this special case, the next smallest
element is in the second position
already. Swapping keeps it in this
position.
1
2
6
3
5
4
Swapped
Swapping keeps it in this
position.
1
2
6
3
5
4
Smallest?
After the next smallest element is in the
second position, we continue searching
with the third element and look for the
next smallest element.
1
2
6
3
5
4
Smallest!
Swap!
1
2
6
3
5
4
1
2
3
6
5
4
Swapped
1
2
3
6
5
4
Smallest?
1
2
3
6
5
4
Smallest?
1
2
3
6
5
4Swap!
1
2
3
6
5
4Smallest!
1
2
3
4
5
6Swapped
The last two elements are in order, so
no swap is necessary
1
2
3
4
5
6
What “Swapping” means
6
2
1
3
5
4
6
Place the first element into the
Temporary Variable.
TEMP
1
2
1
3
5
4
Replace the first element with the value
of the smallest element.
6
TEMP
1
2
6
3
5
4
6
TEMP
Replace the third element (in this
example) with the Temporary Variable.
Code for Minimum
public static intfindMinimum(int[] list, int first){
intminIndex= first;
for (int index = first + 1; index < list.length;
index ++){
if (list[index] < list[minIndex])
minIndex= index ;
returnminIndex;
}
}
Code for Swap
public static void swap(int[] list, int x, int y)
{
int temp = list[x];
list[x] = list[y];
list[y] = temp;
}
Source Code
public static voidselectionSort(int[] list){
for (int index = 0; index < list.length -1; index
++){
intminIndex=findMinimum(list, index );
if (minIndex!= index );
swap(list, index , minIndex);
}
}
for i ← 1 to n-1 do
min j ← i;
min x ← A[i]
for j ← i + 1 to n do
If A[j] < min x then
min j ← j
min x ← A[j]
A[min j] ← A [i]
A[i] ← min x

Selection sort

Editor's Notes

  • #29 The Big O notation for the Selection Sort is O(n ), because it takes approximately n passes to sort the elements. - n2), n2