Sorting_Animation

Sorting Animation
Chapter 10
1
Selection Sort
Another way of sorting is the selection sort
The main idea is to keep finding the
smallest (and next smallest) items in the
array
And move them into correct position (swap)
2
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
45
0
k
0
5
77
6
18
7
17
small_pos
0
45 < smallest?
F
3
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
45
1
k
0
5
77
6
18
7
17
small_pos
0
32 < smallest?
T
4
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
32
1
k
0
5
77
6
18
7
17
small_pos
1
32 < smallest?
T
5
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
32
2
k
0
5
77
6
18
7
17
small_pos
1
56 < smallest?
F
6
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
32
3
k
0
5
77
6
18
7
17
small_pos
1
9 < smallest?
T
7
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
9
3
k
0
5
77
6
18
7
17
small_pos
3
9 < smallest?
T
8
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
9
4
k
0
5
77
6
18
7
17
small_pos
3
21 < smallest?
F
9
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
9
5
k
0
5
77
6
18
7
17
small_pos
3
77 < smallest?
F
10
Selection Sort
0
45
data
1
32
2
56
3
9
4
21
smallest
n
9
6
k
0
5
77
6
18
7
17
small_pos
3
17 < smallest?
F
11
Selection Sort—SWAP!
0
45
data
2
56
3
9
4
21
5
77
smallest
n
6
k
1
32
9
6
18
7
17
small_pos
3
Swap(data[k], data[small_pos]);
0
12
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
32
1
k
1
4
21
5
77
6
18
7
17
small_pos
1
32 < smallest?
F
13
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
32
2
k
1
4
21
5
77
6
18
7
17
small_pos
1
32 < smallest?
F
14
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
32
3
k
1
4
21
5
77
6
18
7
17
small_pos
1
45 < smallest?
F
15
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
32
4
k
1
4
21
5
77
6
18
7
17
small_pos
1
21 < smallest?
T
16
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
21
4
k
1
4
21
5
77
6
18
7
17
small_pos
4
21 < smallest?
T
17
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
21
5
k
1
4
21
5
77
6
18
7
17
small_pos
4
77 < smallest?
F
18
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
21
6
k
1
4
21
5
77
6
18
7
17
small_pos
4
18 < smallest?
T
19
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
18
6
k
1
4
21
5
77
6
18
7
17
small_pos
6
18 < smallest?
T
20
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
18
7
k
1
4
21
5
77
6
18
7
17
small_pos
6
17 < smallest?
T
21
Selection Sort
0
9
data
1
32
2
56
3
45
smallest
n
17
7
k
1
4
21
5
77
6
18
7
17
small_pos
7
17 < smallest?
T
22
Selection Sort—SWAP!
0
9
data
2
56
3
45
4
21
smallest
n
7
k
1
32
17
5
77
6
18
7
17
small_pos
7
Swap(data[k], data[small_pos]);
1
23
Selection Sort—and so on
0
9
data
1
17
2
56
3
45
smallest
n
56
2
k
2
4
21
5
77
6
18
7
32
small_pos
2
56 < smallest?
F
24