Week 61: CST370 - Design and Analysis of Algorithms
WK02: Weekly Reflection
This week's module focused on asymptotic notation and the analysis of algorithms, which helped me understand how computer scientists compare solutions beyond just whether they work. I learned that asymptotic notations such as Big O, Big Omega, and Big Theta describe how an algorithm's running time grows as input size increases. This gave me a clearer way to talk about efficiency when comparing algorithms that solve the same problem.
One thing that went well this week was learning the difference between informal and formal definitions of time efficiency. The examples made me realize that Big O is not just about counting every single step, but about understanding the overall growth pattern. I also found the exercises helpful because they gave me practice recognizing whether an algorithm grows linearly, quadratically, logarithmically, or differently. I learned how to analyze loops, nested loops, and basic operations to estimate running time. The Big Theta examples helped me see how tighter bounds give a more accurate description of performance.
The recursive algorithm materials were more challenging, especially recurrence relations and backward substitution. However, working through recursion showed me how repeated function calls can be analyzed systematically.
The Tower of Hanoi topic was interesting because it connected recursion to a classic problem. It showed me how a simple recursive idea can lead to a larger pattern of growth. The brute force algorithm lecture also helped me understand that some solutions are simple and direct, but may become inefficient when input sizes grow.
Overall, this week strengthened my understanding of algorithm analysis. My main takeaway is that efficiency matters because correct algorithms can still be impractical. Next week, I want to keep practicing asymptotic notation, recurrence relations, and loop analysis so I can become more confident solving these problems well.
Comments
Post a Comment