Selection Sort
(one of the simplest sorting algorithms)
3 10 4 6 8 9 7 2 1 5
1
3 10 4 6 8 9 7 2 1 5
1 10 4 6 8 9 7 2 3 5
1 10 4 6 8 9 7 2 3 5
1 2 4 6 8 9 7 10 3 5
3
1 2 4 6 8 9 7 10 3 5
2
1 2 4 6 8 9 7 10 3 5
1 2 3 6 8 9 7 10 4 5
1 2 3 6 8 9 7 10 4 5
1 2 3 4 8 9 7 10 6 5
1 2 3 4 8 9 7 10 6 5
1 2 3 4 5 9 7 10 6 8
5
1 2 3 4 5 9 7 10 6 8
1 2 3 4 5 6 7 10 9 8
1 2 3 4 5 6 7 10 9 8
1 2 3 4 5 6 7 10 9 8
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
6
3
i ← 0
(i < N-1)
min ← A[i]
4. min_id i
j ← i + 1
(j < N) !
" (A[j] < min) #$ %
# & '(
% ) ← j
! j ← j + 1
* A[i]
A[i] &' ) (
& 'min_id] temp 7
i ← i + 1
4
+ ,-
* -. * * /
*
+
* - *
-
+ 0 , *1 - n-
1
+ 0 * , * ,
2
3 4 5 * 6 n-1
*
3 6 3 * n-1
*
.* ** 7* /
+ " * * 6 1 + 2 +
.. + n-1 = n*(n-1)/2
10
5
+8 , *
$ 5 -
+ ,
* 1 - * 9 *
+ 5
* --
11