Exercise 8.2.1
Using figure 8.2 as a model, illustrate the operation of
COUNTING-SORT
on the array $A = \langle 6, 0, 2, 0, 1, 3, 4, 6, 1, 3, 2 \rangle$
This is tricky to do with graphviz, so I'm going to resort to ASCII art.
This is the array we sort
+---+---+---+---+---+---+---+---+---+---+---+
A: | 6 | 0 | 2 | 0 | 1 | 3 | 4 | 6 | 1 | 3 | 2 |
+---+---+---+---+---+---+---+---+---+---+---+
We build an array of counts:
0 1 2 3 4 5 6
+---+---+---+---+---+---+---+
C: | 2 | 2 | 2 | 2 | 1 | 0 | 2 |
+---+---+---+---+---+---+---+
The number of elements before each
0 1 2 3 4 5 6
+---+---+---+---+---+---+----+
C: | 2 | 4 | 6 | 8 | 9 | 9 | 11 |
+---+---+---+---+---+---+----+
Then we start iterating:
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | | | 2 | | | | | | C: | 2 | 4 | 5 | 8 | 9 | 9 | 11 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | | | 2 | | 3 | | | | C: | 2 | 4 | 5 | 7 | 9 | 9 | 11 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | 1 | | 2 | | 3 | | | | C: | 2 | 3 | 5 | 7 | 9 | 9 | 11 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | 1 | | 2 | | 3 | | | 6 | C: | 2 | 3 | 5 | 7 | 9 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | 1 | | 2 | | 3 | 4 | | 6 | C: | 2 | 3 | 5 | 7 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | | 1 | | 2 | 3 | 3 | 4 | | 6 | C: | 2 | 3 | 5 | 6 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | | 1 | 1 | | 2 | 3 | 3 | 4 | | 6 | C: | 2 | 2 | 5 | 6 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | 0 | 1 | 1 | | 2 | 3 | 3 | 4 | | 6 | C: | 1 | 2 | 5 | 6 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | | 6 | C: | 1 | 2 | 4 | 6 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
A: | 0 | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | | 6 | C: | 0 | 2 | 4 | 6 | 8 | 9 | 10 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+----+
1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+
A: | 0 | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 6 | 6 | C: | 0 | 2 | 4 | 6 | 8 | 9 | 9 |
+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+