Logic of TopDown Sort:
15 These are the numbers I want to sort.
36
24
12
20
Pass 1:
Before 
Processing 
After 

Set up: Establish 2 subscripts: SUB1=1 and SUB2 = 2 

15 36 24 12 20 
Compare: 15  what SUB1 is pointing to 36  what SUB2 is pointing to 15 < 36 so leave alone 
15 36 24 12 20 
15 36 24 12 20 
Add 1 to SUB2 so, SUB2 = 3 Compare: 15  what SUB1 is pointing to 24  what SUB2 is pointing to 15 < 24 so leave alone 
15 36 24 12 20 
15 36 24 12 20 
Add 1 to SUB2 so, SUB2 = 4 Compare: 15  what SUB1 is pointing to 12  what SUB2 is pointing to 15 not < 12, so flip meaning move what SUB1 is pointing to, to the spot where SUB2 is pointing and what SUB2 was pointing to, to the spot where SUB1 was pointing 
12 36 24 15 20 
12 36 24 15 20 
Add 1 to SUB2 so, SUB2 = 5 Compare: 12  what SUB1 is pointing to 20  what SUB2 is pointing to 12 < 20 so leave alone 
12 36 24 15 20 

The next add to SUB2 puts it out of the range of the table (5 elements in the table), so Pass 1 is over. Pass 1 ends with the smallest number in the table at the top  in element 1. 
12 36 24 15 20 
Pass 2:
Before 
Processing 
After 
12 36 24 15 20 
Start of Pass: 12 is locked in place Reset subscripts: SUB1 = 2 (add 1 to SUB1) and SUB2 = 3 (one more than SUB1) 

12 36 24 15 20 
Compare: 36  what SUB1 is pointing to 24  what SUB2 is pointing to 36 not < 24 so flip 
12 24 36 15 20 
12 24 36 15 20 
Add 1 to SUB2 so, SUB2 = 4 Compare: 24  what SUB1 is pointing to 14  what SUB2 is pointing to 24 not < 15 so flip 
12 15 36 24 20 
12 15 36 24 20 
Add 1 to SUB2 so, SUB2 = 5 Compare: 15  what SUB1 is pointing to 20  what SUB2 is pointing to 15 < 20 so leave alone 
12 15 36 24 20 

The next add to SUB2 puts it out of the range of the table (5 elements in the table), so Pass 2 is over. Pass 2 ends with the smallest two number in the table at the top  in element 1 and element 2. 
12 15 36 24 20 
Pass 3:
Before 
Process 
After 
12 15 36 24 20 
Start of Pass: 12 and 15 are locked in place Reset subscripts: SUB1 = 3 (add 1 to SUB1) and SUB2 = 4 (one more than SUB1) 

12 15 36 24 20 
Compare: 36  what SUB1 is pointing to 24  what SUB2 is pointing to 36 not < 24 so flip 
12 15 24 36 20 
12 15 24 36 20 
Add 1 to SUB2 so, SUB2 = 5 Compare: 24  what SUB1 is pointing to 20  what SUB2 is pointing to 24 not < 20 so flip 
12 15 20 36 24 

The next add to SUB2 puts it out of the range of the table (5 elements in the table), so Pass 3 is over. Pass 3 ends with the smallest three number in the table at the top  in element 1 and element 2 and element 3. 
12 15 20 36 24 
Pass 4:
Before 
Processing 
After 
12 15 20 36 24 
Start of Pass: 12 and 15 and 20 are locked in place Reset subscripts: SUB1 = 4 (add 1 to SUB1) and SUB2 = 5 (one more than SUB1) 

12 15 20 36 24 
Compare: 36  what SUB1 is pointing to 24  what SUB2 is pointing to 36 not < 24 so flip 
12 15 20 24 36 

The next add to SUB2 puts it out of the range of the table (5 elements in the table), so Pass 4 is over and since adding 1 to SUB1 would have it point at the last element in the table, the sort is over. Note: Since this example sorted 5 numbers, 4 passes were needed (one less than the number of numbers being sorted). 
12 15 20 24 36 