I'm trying to figure out the time complexity of a greedy coin changing algorithm. (I understand Dynamic Programming approach is better for this problem but I did that already). I'm not sure how to go about doing the while
loop, but I do get the for
loop.
I have the following where D[1...m]
is how many denominations there are (which always includes a 1), and where n
is how much you need to make change for.
This is my algorithm:
CoinChangeGreedy(D[1...m], n)
numCoins = 0
for i = m to 1
while n ≥ D[i]
n -= D[i]
numCoins += 1
return numCoins