On a network with nonnegative-length edges, Dijkstra's shortest path algorithm computes single-source shortest path in O(m + n log n) time. The time bound assumes that a Fibonacci heap is used during the implementation of Dijkstra's algorithm. As the process of building heaps needs a little complex work, it makes the algorithm not easy to be used. In this paper, we make some very simple, but useful, changes in the original Dijkstra algorithm and obtain a new improved Dijkstra's shortest path algorithm that avoids the process of building heap and runs in O(m + D(max)log(n!)) time. Here m, n and D-max are the number of edges, vertices and the maximal number of edges incident with vertex, respectively. Thus, the new algorithm is very competitive for those sparse networks especially in road traffic networks in which D-max is often a small number. (c) 2006 Elsevier Inc. All rights reserved.