Before revision:  We also devise efficient algorithms for computing (\le \le 1 +\epsilon)-approximate shortest paths from each vertex to its k nearest neighbors in directed graphs. Here too the running time is only O(n^{2+o(1))even for polynomially large k} n^{0.168.
After revision:  We also devise efficient algorithms for computing (\le \le 1 +\epsilon)-approximate shortest paths from each vertex to its k nearest neighbors in directed /2. Moreover, it improves previous bounds for all r > 1/2. For unweighted graphs, the running time is only O(n^{2+o(1))even for polynomially large k} n^{0.168.