bubbleSort
by alekskorovin
JavaScript
(function () {
"use strict";
function defaultDifference(a, b) {
return a - b;
}
function bubbleSort(numbers, difference) {
difference = difference || defaultDifference;
for (var itemIndex = 0; itemIndex < numbers.length; itemIndex += 1) {
for (var currentIndex = itemIndex; currentIndex > 0; currentIndex -= 1) {
var previousIndex = currentIndex - 1,
currentItem = numbers[currentIndex],
previousItem = numbers[previousIndex],
currentIsLessThanPrevious = difference(currentItem, previousItem) < 0;
if (currentIsLessThanPrevious) {
numbers[currentIndex] = previousItem;
numbers[previousIndex] = currentItem;
}
}
}
return numbers;
}
console.log(bubbleSort([4, 6, 2, 10, 1]));
})();