Heap Sort | A Helpful Line-by-Line Code Tutorial | Part 1

In computer science, heapsort is a comparison-based sorting algorithm.

public class HeapSort {

	public static final int max = 11;

	public static void main(String[] args){
		
		int[] toSortArray = new int[max];
		
		//Required Things
		
			
		
		//End
	
		toSortArray[0] = 0;
		
		for(int i = 1; i < max; i++){
			
			toSortArray[i] = (int) (Math.random()*100);
			toSortArray[0]++; //holds the number of values in the array;
			
			int index = i;
				
			while(toSortArray[index/2]<toSortArray[index] && (index/2)!=0){
				
				int temp = toSortArray[index/2];
				toSortArray[index/2] = toSortArray[index];
				toSortArray[index] = temp;
				index=index/2;
				
			}
			
			//Hence the heap is created!
					
		}
		
		System.out.println("The array to be sorted is:");
		
		for(int i = 0; i < max; i++){
			
			System.out.print(" | " + toSortArray[i]);
			
		}
		
		System.out.println(" | ");

		//Start
		
		//Let's Sort it out now!
		
			while(toSortArray[0]>0){
				
				int temp = toSortArray[1];
				toSortArray[1] = toSortArray[toSortArray[0]];
				toSortArray[toSortArray[0]] = temp;
				
				for(int i = 1; i < toSortArray[0]; i++){
				
					int index = i;
						
					while(toSortArray[index/2]<toSortArray[index] && (index/2)!=0){
						
						int temp1 = toSortArray[index/2];
						toSortArray[index/2] = toSortArray[index];
						toSortArray[index] = temp1;
						index=index/2;
						
					}
						
				}	
				
				toSortArray[0]--;
			
			}
			
		//End
		
		System.out.println("The sorted array is: ");
		
		for(int i = 0; i < max; i++){
			
			System.out.print(" | " + toSortArray[i]);
		}
		
		System.out.println(" | ");
		
	}

	
}