Explanation :
Suppose v is starting vertex so start DFS at node v
(i) visit t (v) → DFS(A) → visit (A) → DFS
(v) → visit (u) → back track (A) → Back track (v)
therefore d[v] > d[v], d[v] < f[v] f[v] < f[v]
But visiting order is just opposite of finishing order.
Hence f[v] > f[v]
Explanation : DFS visits each vertex once and as it visits each
vertex, we need to find all of its neighbours to
figure out where to search next. Finding all its
neighbour s in an adjacency matrix r equires
O(V) time, so overall the running time will be
O(V2).