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
.