Skip to content

Commit a232975

Browse files
committed
added heapsort in java
1 parent e28fd33 commit a232975

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

sortingAlgo/heapSort/HeapSort.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
public class HeapSort{
2+
public void sort(int arr[]){
3+
int n = arr.length;
4+
5+
for (int i = n / 2 - 1; i >= 0; i--)
6+
heapify(arr, n, i);
7+
8+
for (int i=n-1; i>=0; i--){
9+
int temp = arr[0];
10+
arr[0] = arr[i];
11+
arr[i] = temp;
12+
13+
heapify(arr, i, 0);
14+
}
15+
}
16+
17+
void heapify(int arr[], int n, int i){
18+
int largest = i;
19+
int l = 2*i + 1;
20+
int r = 2*i + 2;
21+
22+
if (l < n && arr[l] > arr[largest])
23+
largest = l;
24+
25+
if (r < n && arr[r] > arr[largest])
26+
largest = r;
27+
28+
if (largest != i){
29+
int swap = arr[i];
30+
arr[i] = arr[largest];
31+
arr[largest] = swap;
32+
33+
heapify(arr, n, largest);
34+
}
35+
}
36+
37+
static void printArray(int arr[]){
38+
int n = arr.length;
39+
for (int i=0; i<n; ++i)
40+
System.out.print(arr[i]+" ");
41+
System.out.println();
42+
}
43+
44+
public static void main(String args[]){
45+
int arr[] = {12, 11, 13, 5, 6, 7};
46+
int n = arr.length;
47+
48+
HeapSort ob = new HeapSort();
49+
ob.sort(arr);
50+
51+
System.out.println("Sorted array is");
52+
printArray(arr);
53+
}
54+
}

0 commit comments

Comments
 (0)