This week I learned about ways to keep trees balanced like AVL Trees and 2-3 Trees. It was interesting to see how AVL Trees use rotations to stay balanced while 2-3 Trees split nodes when needed. We also worked with heaps, focusing on max heaps. I practiced how to add and remove values while keeping the heap structure in place. The bottom up method using arrays was a bit confusing at first but it started to click after some examples. I also learned how hashing works, including how to handle collisions and when to rehash as the table fills up.
This week I focused a lot on understanding time complexity and recursive analysis. It was challenging at first to figure out how to break down recursive functions and write the correct recurrence relations. Applying the Master Theorem was especially tough because I had to carefully identify each part of the formula and decide which case applied. I also spent time reviewing the difference between Big O, Big Omega, and Big Theta, which helped me better understand how to describe the efficiency of an algorithm. These concepts took time to click but working through examples really helped.
Comments
Post a Comment