add implementation of heapsort and maintain median
also start implementing dijkstra shortest path using a heap