Bubble Pancakes
Este problema é similar ao anterior: você tem que ordenar as panquecas, a
menor no topo e a maior embaixo, mas você só pode virar elas para
ordená-las.
O objetivo aqui é ordená-los usando o algoritmo da bolha (bubble), onde uma
panqueca é movida para o fundo até encontrar uma maior que ela. Em
representações gráficas, parece que uma bolha ocupa o lugar do elemento e
move ele através da pilha. É daí que saiu o nome do algoritmo.
Agora, usando panquecas torna as coisas um pouco mais difíceis de escrever,
pois você tem que encontrar uma forma de alternar apenas duas panquecas por
vez.
O Algoritmo da bolha consiste em navegar a pilha completa de cima para
baixo, e fazendo uma comparação entre duas panquecas. Cada vez que a
panqueca de cima é maior que a de baixo, você tem que alterná-las, então
comparar a panqueca maior que você acabou de alternar com a de baixo dela, e
por aí vai. Você tem que navegar através de toda a pilha até que nenhuma
troca ocorra, e neste caso, a pilha estará ordenada.
Se você não entende o algoritmo básico bubble sort, tente os exercícios da
lição Algoritmos de Ordenação. Se você consegue, mas não imagina uma forma
de alternar apenas duas panquecas por vez, pense na situação onde apenas
duas panquecas são alternadas por vez, e encontre uma forma de chegar nesta
situação.