Guest User

Untitled

a guest
Oct 21st, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. var a = randomArray(100000, 100000);
  2.  
  3. function randomArray(length, max) {
  4. return Array.apply(null, Array(length)).map(function() {
  5. return Math.round(Math.random() * max);
  6. });
  7. }
  8.  
  9. function swap(a, i, j) {
  10. var tmp = a[i];
  11. a[i] = a[j];
  12. a[j] = tmp;
  13. }
  14.  
  15. function max_heapify(a, i, length) {
  16. while (true) {
  17. var left = i*2 + 1;
  18. var right = i*2 + 2;
  19. var largest = i;
  20.  
  21. if (left < length && a[left] > a[largest]) {
  22. largest = left;
  23. }
  24.  
  25. if (right < length && a[right] > a[largest]) {
  26. largest = right;
  27. }
  28.  
  29. if (i == largest) {
  30. break;
  31. }
  32.  
  33. swap(a, i, largest);
  34. i = largest;
  35. }
  36. }
  37.  
  38. function heapify(a, length) {
  39. for (var i = Math.floor(length/2 - 1); i >= 0; i--) {
  40. max_heapify(a, i, length);
  41. }
  42. }
  43.  
  44. function heapsort(a) {
  45. heapify(a, a.length);
  46.  
  47. for (var i = a.length - 1; i > 0; i--) {
  48. swap(a, i, 0);
  49.  
  50. max_heapify(a, 0, i);
  51. }
  52. }
  53. var start = new Date().getTime();
  54. heapsort(a);
  55. var end = new Date().getTime();
  56. var time = end - start;
  57. console.log("Done")
  58. console.log("Sorted an array with " + a.length + " elements")
  59. console.log("It took " + time + " ms to sort!")
Add Comment
Please, Sign In to add comment