Can anyone explain me the Heap sort logic and how to implement it in java ?
And suggest me which sort algorithm is the best in performance wise with huge Data and less Data?
Heapsort. There is an example there in Pascal / Delphi. Let's see if you can read that. For your information, ":=" is the assignment operator in Pascal / Delphi.
the Heap data structure is basically a tree, where the child nodes are always smaller (by whatever definition of 'smaller' you choose) than the parent.
There are algorithms for re-heapifying a heap once you remove an element.
A Heap sort builds a heap out of your data.
you remove the largest node (which is by definition the root of the heap), and stick it at the end of your array, then re-heapify what's left.
You then remove the largest node, put it in the second to last spot, and re-heapify.
etc.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors