bubbleSort.js 484 B

123456789101112131415161718
  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. for (var i = 0, len = arr.length; i < len; i++) {
  9. for (var j = i; j > 0; j--) {
  10. if (cmp(arr[j], arr[j - 1]) < 0) {
  11. swap(arr, j, j - 1);
  12. }
  13. }
  14. }
  15. return arr;
  16. };
  17. module.exports = exports;