algosort
Version:
This node package is for all javascript developers who are interested in sorting algorithms. This package gives you the possibility to choose between many different sorting algorithms. This package will output a two dimensional array of all numbers in dif
39 lines (35 loc) • 1.18 kB
JavaScript
var sortedNumbers = [];
var arrayOfArrays = [];
exports.bubblesort = function(numbers, i, output, testIndicator) {
if (output === "afterEachNumber")
sortedNumbers = sortedNumbers.concat(numbers);
else if (output === "afterEachRun") {
if (i == 0)
sortedNumbers = sortedNumbers.concat(numbers);
} else if (output === "afterAllRuns") {
if (testIndicator == numbers.length-1)
sortedNumbers = sortedNumbers.concat(numbers);
} else
return `"${output}" is no valid output option! \n\n Output options: "afterEachNumber", "afterEachRun" and "afterAllRuns"` ;
if (numbers[i] > numbers[i+1]) {
var smallerNumber = numbers[i+1];
numbers[i+1] = numbers[i];
numbers[i] = smallerNumber;
testIndicator = 0;
} else {
testIndicator++;
}
if (testIndicator < numbers.length) {
if (i < numbers.length-2) {
i++;
this.bubblesort(numbers, i, output, testIndicator);
} else {
this.bubblesort(numbers, 0, output, testIndicator);
}
} else {
for (var i=0; i<sortedNumbers.length; i+=numbers.length) {
arrayOfArrays.push(sortedNumbers.slice(i,i+numbers.length));
}
}
return arrayOfArrays;
}