Page 359, Exercise 3

The radix sort given in the text is indeed stable. The use of queues to determine the placement of the array elements insures that duplicate elements will be ordered relative to their original array positions. The following example illustrates the stablity of the algorithm. The duplicate elements are labeled 'a' and 'b' to distinguish between positions.

ORIGINAL ARRAY: 
 
R 1    R 2    R 3    R 4    R 5    R 6    R 7    R 8    R 9    R 10  
 
179    208a   306     93a   859     93b   208b    9a     271    9b 
Queues For Pass One: 
 
0    |   1    |   2    |   3    |   4   |    5    |   6   |    7  |    8    |   9      
     |        |        |        |       |         |       |       |         |        
     |        |        |        |       |         |       |       |         |   9b 
     |        |        |        |       |         |       |       |         |   9a        
     |        |  93b   |        |       |         |       |       |  208b   |  859 
     |  271   |  93a   |        |       |         |  306  |       |  208a   |  179  
CHAIN AFTER PASS ONE: 
 
R 1    R 2    R 3    R 4    R 5    R 6    R 7    R 8    R 9    R 10  
 
271    93a    93b    306    208a   208b   179    859     9a      9b
Queues: Created by Pass 2 
 
  0  →   1    →   2    →   3    →   4   →    5    →   6   →    7  →    8    →   9      
  9b →        →        →        →       →         →       →       →         →        
  9a →        →        →        →       →         →       →       →         →      
208b →        →        →        →       →         →       →       →         →             
208a →        →        →        →       →         →       →  179  →         →  93b 
CHAIN AFTER PASS TWO: 
 
R 1    R 2    R 3    R 4    R 5    R 6    R 7    R 8    R 9    R 10  
 
306    208a   208b    9a     9b    259    271    279    93a    93b
QUEUES FOR PASS THREE: 
 
0    |   1    |   2    |   3    |   4   |    5    |   6   |    7  |    8    |   9      
     |        |        |        |       |         |       |       |         |        
93b  |        |        |        |       |         |       |       |         |      
93a  |        |  259   |        |       |         |       |       |         |             
9b   |        |  208b  |        |       |         |       |       |         |      
9a   |  179   |  208a  |   306  |       |         |       |       |  859    |       
CHAIN AFTER PASS THREE:   

R 1    R 2    R 3    R 4    R 5    R 6    R 7    R 8    R 9    R 10  
 
 9a   9b      93a     93b   179    208a   208b   259    306     859