Skip to content
This repository was archived by the owner on Jun 2, 2024. It is now read-only.

Commit 528075f

Browse files
authored
Add head sort in JavaScript (#910)
1 parent fd6f704 commit 528075f

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

Javascript/Algorithms/heap-sort.js

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
function sort( arr){
2+
3+
var N = arr.length;
4+
5+
for (var i = Math.floor(N / 2) - 1; i >= 0; i--)
6+
heapify(arr, N, i);
7+
8+
for (var i = N - 1; i > 0; i--) {
9+
10+
var temp = arr[0];
11+
arr[0] = arr[i];
12+
arr[i] = temp;
13+
14+
heapify(arr, i, 0);
15+
}
16+
}
17+
18+
function heapify(arr, N, i)
19+
{
20+
var largest = i; // Initialize largest as root
21+
var l = 2 * i + 1; // left = 2*i + 1
22+
var r = 2 * i + 2; // right = 2*i + 2
23+
24+
if (l < N && arr[l] > arr[largest])
25+
largest = l;
26+
27+
if (r < N && arr[r] > arr[largest])
28+
largest = r;
29+
30+
if (largest != i) {
31+
var swap = arr[i];
32+
arr[i] = arr[largest];
33+
arr[largest] = swap;
34+
35+
heapify(arr, N, largest);
36+
}
37+
}
38+
39+
function printArray(arr)
40+
{
41+
var N = arr.length;
42+
for (var i = 0; i < N; ++i)
43+
document.write(arr[i] + " ");
44+
45+
}
46+
47+
var arr = [12, 11, 13, 5, 6, 7];
48+
var N = arr.length;
49+
50+
sort(arr);
51+
52+
document.write( "Sorted array is");
53+
printArray(arr, N);

0 commit comments

Comments
 (0)