Seu trabalho é ordenar todas as cores da bandeira holandesa, e a única primitiva fornecida é trocar duas linhas dadas. Adicionalmente, você não deve criar quaisquer variáveis adicionais (exceto alguns índices).
Se você pensar com carinho, isto pode ser feito em tempo linear, onde você ordena uma linha a cada iteração do loop. Você pode querer dar mais uma olhada no insertion sort, do qual o Dutch Flag sort é uma variação. A principal diferença é que você 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
.