Review
https://slides.com/georgelee/ics141-final-review/live
We covered a lot!
Final Exam
- Thursday, Dec. 17th 4:30-6:30
- 10-12 Questions
- Not Comprehensive
- Open notes (no book)
Algorithms
What is an Algorithm?
Basic Algorithms
- Find the largest/smallest number in a list
- Sum the numbers in a list
- Find the even numbers in a list
- Making change (greedy algorithm)
Searching and Sorting
- Non-recursive
- Linear search and binary search
- Bubble sort / Insertion sort
Growth of functions
- Big O notation
- Upper bound on the function
- O(1) < O(log n) < O(nk) < O(bn)
- Other notations
Complexity of Algorithms
- Time Complexity
- Worst case complexity
- Counting the number of operations.
- What is the complexity of linear search? Binary search? Sorting algorithms?
Data Representations
Numbers in other Bases
- Binary, Octal, and Hexadecimal
- How do we convert these to decimal?
- How do we convert numbers from decimal?
- Signed and unsigned integers
Numbers in other Bases
- Binary, Octal, and Hexadecimal
- How do we convert these to decimal?
- How do we convert numbers from decimal?
- Signed integers
Adding and Subtracting
- How do we do these in base 10?
- Translate this process into any base.
Modulo Arithmetic
- When we divide two integers, we get a quotient and a remainder
- Modulo congruence (8 mod 12 = 20 mod 12)
- There are multiple theorems associated with congruence
Primes
Prime Numbers
- Algorithm for determining if a number is prime
- Sieve of Erastothenes
Greatest Common Divisor
- Can break down into prime factors
- Use the Euclidean Algorithm
- Let a = bq + r, where a, b, q, and r are integers. Then gcd(a, b) = gcd(b, r).
Induction
Inductive Proofs
- Basis step and the Inductive step (P(k) → P(k + 1) )
- Strong Induction
[P(b) ^ P(b + 1) ^ P(b + 2) ... P(k)] -> P(k + 1)
Recursive Definitions
- Define a function in terms of itself
- Base case, inductive case
- Consider the Fibonacci Sequence
- Strings
Recursive Algorithms
- Thinking recursively
- Define linear/binary search recursively
- Recursive Euclidean Algorithm
- Sorting (Merge Sort and Quick Sort)
Counting
Basic Counting
- Product Rule
- Sum Rule
- Inclusion-Exclusion Principle
- Pigeonhole Principle
Permutations and Combinations
- Permutations are an ordered subset of a set
- Combinations are an unordered subset of a set
- Consider when order matters and when it does not.
With Replacement
- Permutations are straight product rule.
- Combinations with replacement are trickier
C(n + k - 1, k) = (n + k - 1)! / k! (n - 1)! - Permutations with indistinguishable objects
Final Review
By George Lee
Final Review
- 907