Esse aqui é bom:
se a>b OU a>c então se b < c então //troca b com a senão //troca c com a fimse fimse se c < b então //troca c com b fimseExplicação:
Se o a for maior que b ou c, então é porque ele não é o menor.
Se ele não é o menor, é porque o menor só pode ser o b ou o c. Por isso o teste "b < c". Uma vez achado o menor entre b e c, guarda-se esse valor em a, que é onde deve estar o menor.
Depois, para que se tenha o intemediário em b e o maior em c, verifica-se quem é o menor entre b e c, como vemos no final do código.
Os comentários "//troca" devem ser trocados pelo algoritmo de troca, que usa uma variável auxiliar (acho que todos conhecem):
aux <- var1
var1 <- var2
var2 <- aux