update Heap data structure and fix serious bugs, add heap sort