heap sort with and without struct done