selectionSort.js 571 B

1234567891011121314151617181920212223
  1. var swap = require('./swap');
  2. var isSorted = require('./isSorted');
  3. exports = function(arr) {
  4. var cmp =
  5. arguments.length > 1 && arguments[1] !== undefined
  6. ? arguments[1]
  7. : isSorted.defComparator;
  8. var min;
  9. for (var i = 0, len = arr.length; i < len; i++) {
  10. min = i;
  11. for (var j = i + 1; j < len; j++) {
  12. if (cmp(arr[j], arr[min]) < 0) {
  13. min = j;
  14. }
  15. }
  16. if (i != min) {
  17. swap(arr, i, min);
  18. }
  19. }
  20. return arr;
  21. };
  22. module.exports = exports;