-- a partir do primeiro busca o maior e coloca no fim da lista -- reduz o intervalo de trocas a medida que coloca -- os maiores no fim da lista -- function bubblesort(e,d) while e < d do while e < d do if v[e] > v[e+1] then local temp = v[e+1] v[e+1] = v[e] v[e] = temp end e = e + 1 end e = 1 d = d -1 end end v = { 9, 6, 3, 5, 2, 7, 10, 12, 1 } N = table.getn(v) print( table.concat(v,",") ) bubblesort(1, N) print( table.concat(v,",") )