O seu trabalho é ordenar todas as cores da bandeira holandesa e a única primitiva fornecida é trocar duas linhas dadas. Adicionalmente, não deve criar quaisquer variáveis adicionais (exceto alguns índices).
Se pensar bem, pode ser feito em tempo linear, ondeordena uma linha a cada iteração do loop. Pode dar mais uma olhada no insertion sort, do qual o Dutch Flag sort é uma variação. A principal diferença é que tem 3 pontos de inserção e não apenas um...
afterBlue é iniciado como 0. Certifique-se de que cada célula
abaixo de afterBlue é preenchida com elementos azuis.whiteRed é iniciado como size-1. Certifique-se de que cada
célula depois de whiteRed é preenchida com elementos vermelhos.beforeWhite é iniciado com size-1. Certifiqeu-se de que cada
célula depois de beforeWhite e antes de whiteRed é
preenchida com elementos brancos.afterBlue e beforeWhite.afterBlue e faça as mudanças necessárias. A condição de fim de
loop é quando afterBlue se torna maior que
beforeWhite.