Neste caso a tabela é percorrida repetidamente do fim para o princípio e, sempre que se encontre um par de valores fora de ordem (o primeiro é maior de que o segundo), efectua-se a troca.
De cada vez que a tabela é percorrida, pelo menos o valor mais pequeno é colocado na sua posição correcta, pelo que na passagem seguinte essa posição já não é considerada.
Ou seja, na primeira vez considera-se toda a tabela, na segunda já não se considera a primeira posição (já lá está o menor valor da tabela), da terceira já não se consideram as primeiras e segundas posições, e assim sucessivamente.
Este algoritmo é também chamado de Bubblesort por analogia com bolhas de ar dentro de água: as bolhas mais pesadas (valores maiores) vão descendo (deslocando-se para o fim da tabela) e as mais leves (valores menores) vão subindo (deslocando-se para o início da tabela).
O algoritmo que descreve este processo é o seguinte: