Finding shortest path from source node to all nodes using dijkstra's in linearithmic time
To implement Dijkstra's (single source shortest path) algorithm in O(n * log(n)) time, Priority queue was used since deletion of a node in Priority Queue happens in constant time. Therefore this aids in bringing down the time complexity from O(n2) to O(n * log(n)).