UNPKG

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

45 lines (40 loc) 1.56 kB
var sortedNumbers = []; var arrayOfArrays = []; exports.selectionsort = function (numbers, i, output, testIndicator) { if (output === "afterEachNumber") { sortedNumbers = sortedNumbers.concat(numbers); if (testIndicator == numbers.length-1) console.log('In This case the output is the same as with the option "afterEachRun", because of other algorithm structure!'); } else if (output === "afterEachRun") { sortedNumbers = sortedNumbers.concat(numbers); if (testIndicator == numbers.length-1) console.log('In This case the output is the same as with the option "afterEachNumber", because of other algorithm structure!'); } 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"` ; var min = i; for (var j = i; j < numbers.length; j++){ if (numbers[j] <= numbers[min]){ min = j; } } var smallestNumber = numbers[min]; numbers[min] = numbers[i]; numbers[i] = smallestNumber; testIndicator++; if (testIndicator < numbers.length) { if (i < numbers.length) { i++; this.selectionsort(numbers, i, output, testIndicator); } else { console.error("There is an error!"); } } else { for (var i=0; i<sortedNumbers.length; i+=numbers.length) { arrayOfArrays.push(sortedNumbers.slice(i,i+numbers.length)); } } return arrayOfArrays; }