Eu preciso de fazer uma ordenação de uma lista simplesmente ligada com sentinela, de forma crescente…
Estive a investigar e o bubbleSort pode ser implementado da seguinte forma:
Os elementos são sucessivamente colocados na sua posição final a partir da posição mais á esquerda da sequência.
Mas a minha dúvida é a seguinte… com um array… eu usava 2 iteradores… um iterava do fim… outro do inicio… e ia trocando eles sempre que o valor do do fim fosse menor que o do inicio…
Mas com lista n posso andar para trás… apenas para a frente… visto que a lista é simplesmente ligada…
static void bubbleSort(Node dummy){...}
Encontrei na net… um pseudo-código… mas não estou conseguindo aplicar…
procedure bubbleSort( A : list of sortable items ) defined as:
do
swapped := false
for each i in 0 to length( A ) - 2 do:
if A[ i ] > A[ i + 1 ] then
swap( A[ i ], A[ i + 1 ] )
swapped := true
end if
end for
while swapped
end procedure