Week 8 & Week 9
In week 8, we covered binary search trees. These are binary trees that have a left node which contains values smaller than the node, and a right node which contains values larger than the node. This is interesting because it makes searching the tree more easy since either the left or right subtree can be ignored based on the value which we are searching for. I felt fairly confident about binary search trees after learning about them. We also started to talk about running time analysis: big-oh. Big-oh is a way of describing an algorithm's performance: it is the algorithm's behaviour when given large input sizes. Big-oh does not depend on the constant: for instance O(7lgn) and O(3lgn) are both described as having the algorithm O(lgn), because when given large input sizes, the effect of the constant (7 vs 3) is less. I also felt fairly confident about big-oh.
In week 9, we continued talking about big-oh. Big-oh is upper-bound and thus the algorithms in big-oh can be shown as subsets in a hierarchy. At around this time, we have also been learning about big-oh in CSC165, which made it easier to learn about. This week, we also covered selection sort, merge sort, and quick sort. I am a visual learner, and seeing Dr. Heap do the demonstrations of the sorts with the coffee cups helped me learn how each of these sorts work. We also performed running time analysis on these sorts. I felt fairly confident about the material covered this week as well.