(Usage hints for this presentation)
Winter Term 2023/2024
Dr. Jens Lechtenbörger (License Information)
while
loops. For each iteration of a loop, a fixed
number of other operations is executed, and those are covered
by a constant factor in the definition of
Big O complexity
(\(M\) at Wikipedia.)Subsequent quizzes lead to solutions. Please try yourself first.
def naive_mult(op1, op2):
if op2 == 0: return 0
result = op1
while op2 > 1:
result += op1
op2 -= 1
return result
print(naive_mult(2, 3))
def naive_mult(op1, op2)
declares function naive_mult
with two operands==
tests for equality, =
is assignment to variable on leftresult += op1
is short for result = result + op1
op1
is added to result
-=
similarlyreturn
exits the function, delivers result
def naive_mult(op1, op2):
if op2 == 0: return 0
result = op1
while op2 > 1:
result += op1
op2 -= 1
return result
def naive_exp(op1, op2):
if op2 == 0: return 1
result = op1
while op2 > 1:
result = naive_mult(result, op1)
op2 -= 1
return result
print(naive_exp(2, 3))
naive_mult
is copied from previous slidenaive_exp
shares same basic structure
naive_mult
instead of plus operationnaive_mult
on the
previous slide was reversed, i.e., if naive_mult(op1, result)
instead of naive_mult(result, op1)
was executed?
Source files are available on GitLab (check out embedded submodules) under free licenses. Icons of custom controls are by @fontawesome, released under CC BY 4.0.
Except where otherwise noted, the work “Complexity Example”, © 2019-2022 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.
In particular, trademark rights are not licensed under this license. Thus, rights concerning third party logos (e.g., on the title slide) and other (trade-) marks (e.g., “Creative Commons” itself) remain with their respective holders.