Il for più interno fa "salire" fino in cima il valore più alto nella iterazione corrente delle k. Il for esterno ripete questo gioco (stringendo il set su cui il for interno opera man mano, dato che ad ogni giro viene messo al posto giusto il valore più alto) finché non ci si riduce ad un set di un solo elemento. Credo che un'immagine possa chiarire di più: