2019-02-21 in class
This commit is contained in:
parent
641b8a407b
commit
9548ae5e17
3 changed files with 69 additions and 0 deletions
16
1st.py
Normal file
16
1st.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env python3
|
||||
# vim: set ts=4 sw=4 et tw=80:
|
||||
|
||||
import sys
|
||||
|
||||
def find(A, x):
|
||||
i = 0
|
||||
while i < len(A):
|
||||
if A[i] == x:
|
||||
return i
|
||||
i = i + 1
|
||||
return None
|
||||
|
||||
if __name__ == "__main__":
|
||||
A = [int(x) for x in sys.argv[1:]]
|
||||
print(find(A[1:], A[0]))
|
34
notes.md
Normal file
34
notes.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
<!-- vim: set ts=2 sw=2 et tw=80: -->
|
||||
|
||||
# Complexity
|
||||
General way to describe efficiency algorithms (linear vs exponential)
|
||||
indipendent from the computer architecture/speed.
|
||||
|
||||
## The RAM - random-access machine
|
||||
Model of computer used in this course.
|
||||
|
||||
Has random-access memory.
|
||||
|
||||
### Basic types and basic operations
|
||||
Has basic types (like int, float, 64bit words). A basic step is an operation on
|
||||
a basic type (load, store, add, sub, ...). A branch is a basic step. Invoking a
|
||||
function and returning is a basic step as well, but the entire execution takes
|
||||
longer.
|
||||
|
||||
Complexity is not measured by the input value but by the input size in bits.
|
||||
`Fibonacci(10)` in linear in `n` (size of the value) but exponential in `l`
|
||||
(number of bits in `n`, or size of the input).
|
||||
|
||||
By default, WORST complexity is considered.
|
||||
|
||||
## Donald Knuth's A-notation
|
||||
A(c) indicates a quantity that is absolutely at most c
|
||||
|
||||
Antonio's weight = (pronounced "is") A(100)
|
||||
|
||||
## (big-) O-notation
|
||||
f(n) = O(g(n))
|
||||
|
||||
*Definition:* if f(n) is such that f(n) = k * A(g(n)) for all _n_ sufficiently
|
||||
large and for some constant k > 0, then we say that
|
||||
|
19
pair_equal.py
Normal file
19
pair_equal.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env python3
|
||||
# vim: set ts=4 sw=4 et tw=80:
|
||||
|
||||
import sys
|
||||
|
||||
def contains_two_equal(A):
|
||||
i = 0
|
||||
while i < len(A) - 1:
|
||||
j = i + 1
|
||||
while j < len(A):
|
||||
if A[i] == A[j]:
|
||||
return True
|
||||
j = j + 1
|
||||
i = i + 1
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
A = [int(x) for x in sys.argv[1:]]
|
||||
print(contains_two_equal(A))
|
Reference in a new issue