Consider n nested for loops in Python:
for i_1 in range(n): for i_2 in range(n): for i_3 in range(n): ... for i_n in range(n): doSomething()
The recursive way would be:
def nForLoops(n, depth = 0): if depth > n-1: doSomething() else: for i in range(n): nForLoops(n, depth + 1)
A simple iterative function could be written using the observation that doSomething() is called n^n times:
def nForLoops2(n, counter = 0): while counter < pow(n, n): counter += 1 doSomething()
TODO: How could we write it iteratively using stack data structure?
No comments:
Post a Comment