fixed heap bug; added heap_sort