Skip to content

Commit

Permalink
Added Heap Sort in Java and updated README.md about adding Heap Sort …
Browse files Browse the repository at this point in the history
…for Java (#577)
  • Loading branch information
hasalfernando authored Oct 14, 2020
1 parent f46006f commit 8c2c1c5
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ The community maintained a list of **Algorithms and Data Structures** implementa
<td class="text-center"></td>
<td class="text-center">&#10004;</td>
<td class="text-center"></td>
<td class="text-center"></td>
<td class="text-center">&#10004;</td>
<td class="text-center"></td>
<td class="text-center"></td>
<td class="text-center"></td>
Expand Down
56 changes: 56 additions & 0 deletions algorithms/ar-hsrt/java/HeapSort.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
public class HeapSort {

public void sort(int arr[]){

int n = arr.length;

for (int i = n / 2 - 1; i >= 0; i--) {
heapify(arr, n, i);
}

for (int i=n-1; i>0; i--){

int temp_element = arr[0];
arr[0] = arr[i];
arr[i] = temp_element;

heapify(arr, i, 0);
}
}

public void heapify(int arr[], int n, int i){

int largest = i;
int l = 2*i + 1;
int r = 2*i + 2;

if (l < n && arr[l] > arr[largest])
largest = l;

if (r < n && arr[r] > arr[largest])
largest = r;

if (largest != i)
{
int swap = arr[i];
arr[i] = arr[largest];
arr[largest] = swap;

heapify(arr, n, largest);
}
}

public static void main(String args[]){
int input[] = {15, 2, 8, 9, 0, 1, 12, 22};
int n = input.length;

HeapSort ob = new HeapSort();
ob.sort(input);

System.out.println("Sorted array is");

for (int i=0; i<n; ++i) {
System.out.print(input[i] + " ");
}
}
}

0 comments on commit 8c2c1c5

Please sign in to comment.