heapSort.js 478 B

12345678910111213141516171819
  1. var Heap = require('./Heap');
  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 heap = new Heap(cmp);
  9. var len = arr.length;
  10. for (var i = 0; i < len; i++) {
  11. heap.add(arr[i]);
  12. }
  13. for (var _i = 0; _i < len; _i++) {
  14. arr[_i] = heap.poll();
  15. }
  16. return arr;
  17. };
  18. module.exports = exports;