what is an algorithm?
a set of clearly defined , step by step instructions used to solve a problem, with a clear start and end point, providing a valid output from valid inputs
what kinds of problem are solved by algorithms (generally)?
what makes a good algorithm?
what is time complexity?
how much time is required to solve a particular problem using an algorithm - refers to the number of operations or steps to complete + independent of hardware performance
what is Big O notation?
what is scalability?
how much the algorithm slows down when input size into the algorithm increases
what is constant time complexity?
what is linear time complexity?
what is polynomial time complexity?
what is exponential time complexity?
what is logarithmic time complexity?
what is a permutation?
the number of ways that n items can be arranged
what are the 2 types of permutation?
what is the time complexities of the 2 types of permuation?
rank the different time complexities in order of most to least efficient
how do you calculate the Big O of an algorithm?
what is a binary tree?
a rooted tree with a maximum of 2 child nodes
what are the 3 parts of a node?
what are the 3 types of traversals?
what is a balanced binary tree?
where nodes are distributed in such a way that the height is kept to a minimum to enable more efficient searching
what is an unbalanced binary tree?
where the heights of the left and right subtrees of one or more nodes differs significantly - more linear structure -> inefficient operations