Tipo bolha JS

/ **
* Troca dois valores em uma matriz.
* @param {Array} items A matriz que contém os itens.
* @param {int} firstIndex Índice do primeiro item a trocar.
* @param {int} secondIndex Índice do segundo item a ser trocado.
* @return {void}
* /
troca de função (itens, primeiroIndex, segundoIndex) {
var temp = items [firstIndex];
itens [firstIndex] = items [secondIndex];
itens [secondIndex] = temp;
}

/ **
* Uma implementação de classificação por bolha em JavaScript. A matriz
* é classificada no local.
* @param {Array} items Uma matriz de itens para classificar.
* @return {Array} A matriz classificada.
* /
function bubbleSort (items) {

var len = items.length,
i
, j, stop;

for (i=0; i < len; i++){
for (j=0, stop=len-i; j < stop; j++){
if (items[j] > items[j+1]){
swap
(items, j, j+1);
}
}
}

return items;

}

// cria um array com valores aleatórios
var randomArray = Array.apply (null, Array (5)). map (function (_, i) {return i;}). sort (function () {
return .5 – Math. aleatório ();
});

bubbleSort (randomArray);