Add heap sort algorithm
Description
Add heap sort implementation to the sorting algorithms collection.
Requirements
- Implement heap_sort() function with O(n log n) time complexity
- Add heapify helper function for max-heap maintenance
- Update tests to include heap sort validation
- Add heap sort to demo program
- Update README with heap sort complexity information
Algorithm Details
- Time Complexity: O(n log n) best/worst case
- Space Complexity: O(1) (in-place sorting)
- Stable: No
- Method: Builds max-heap and repeatedly extracts maximum element