MCPcopy Create free account
hub / github.com/Vishal-raj-1/Awesome-JavaScript-Projects / Heapify

Function Heapify

assets/js/heapsort.js:59–100  ·  view source on GitHub ↗
(n, i)

Source from the content-addressed store, hash-verified

57
58// Asynchronous Heapify function
59async function Heapify(n, i) {
60var blocks = document.querySelectorAll(".block");
61var largest = i; // Initialize largest as root
62var l = 2 * i + 1; // left = 2*i + 1
63var r = 2 * i + 2; // right = 2*i + 2
64
65// If left child is larger than root
66if (
67 l < n &&
68 Number(blocks[l].childNodes[0].innerHTML) >
69 Number(blocks[largest].childNodes[0].innerHTML)
70)
71 largest = l;
72
73// If right child is larger than largest so far
74if (
75 r < n &&
76 Number(blocks[r].childNodes[0].innerHTML) >
77 Number(blocks[largest].childNodes[0].innerHTML)
78)
79 largest = r;
80
81// If largest is not root
82if (largest != i) {
83 var temp1 = blocks[i].style.height;
84 var temp2 = blocks[i].childNodes[0].innerText;
85 blocks[i].style.height = blocks[largest].style.height;
86 blocks[largest].style.height = temp1;
87 blocks[i].childNodes[0].innerText =
88 blocks[largest].childNodes[0].innerText;
89 blocks[largest].childNodes[0].innerText = temp2;
90
91 await new Promise((resolve) =>
92 setTimeout(() => {
93 resolve();
94 }, 450)
95 );
96
97 // Recursively Hapify the affected sub-tree
98 await Heapify(n, largest);
99}
100}
101
102// Asynchronous HeapSort function
103async function HeapSort(n) {

Callers 1

HeapSortFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected