I've done research on this topic, and the algorithm that you are looking for Dial algorithm. There is also additional optimization of Dijkstra's algorithm, so I also attached it below. At the very bottom, I put my performance tests on these three algorithms.
Dialing algorithm
pseudo code

. 0 . O(m+n*C), n - , C - , m - .
- Radix algorithm.

ln(C) . i th [2^i, 2^(i+1)]. O(m+nln(n*C)).
1

2

3

4
