Heap Sort Program in Java With Explanation

Heap sort program in java. Heap sorting software in java for a novice to learn advanced concepts like sorting in java sorting for beginners. This software is built around the heap concept. Heap sort is a sorting technique that uses a Binary Heap data structure to compare items. It’s similar to a selection sort, in which the minimum element is found first and then placed.

public static void main in Java

The term “public static” is used in this context. The void main method is used to build a main method in a Java application. It’s the program’s main method, and it calls all others. It accepts parameters for complicated command-line processing but cannot return values. 

The access specifier is public. Static is a keyword that allows you to use method variables without having to create an object. The return type is void. It doesn’t give you anything. main is the name of the method. A predefined class is String.

Array Method to Execute Heap Sort Program in Java

In Java, an array is a collection of variables that are referred to by a single variable name and an index number. An array’s items are called elements. An array’s items must all be of the same type. A data structure that contains a group of elements is known as an array. These items are often all of the same data type, such as an integer or a string.

Temp Memory in Java

A temporary variable is a variable in computer programming that has a brief lifetime and is used to retain data that will be removed quickly or before it can be stored in a more permanent memory location. It’s commonly stated as a local variable, or a variable with local scope, because it’s short-lived. 

A temporary array persists only for the period of the data step in which it is defined. A temporary array can be used to store constant values used in calculations. There are no comparable variables to identify the array elements in a temporary array.

public class Main
{
public void sort(int arr[])
{
int n = arr.length;
for (int i = n / 2 - 1; i >= 0; i--)
heaper(arr, n, i);
for (int i=n-1; i>=0; i--)
{
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
heaper(arr, i, 0);
}
}
void heaper(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;
heaper(arr, n, largest);
}
}
static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i]+" ");
System.out.println();
}
public static void main(String args[])
{
int arr[] = {33,45,56,78,87,64};
int n = arr.length;
Main ob = new Main();
ob.sort(arr);
System.out.println("Sorted array is");
printArray(arr);
}
}

Output:

Sorted array is 33 45 56 64 78 87