This week I learned about important data structures including linked lists, stacks, queues, graphs, and trees. The lessons on graphs helped me understand how to represent relationships between data and I saw the difference between unweighted and weighted graphs. Learning about trees gave me a clearer picture of how hierarchical data can be organized. I also started exploring algorithm analysis where I learned how to think about time and space efficiency when writing code. One of the highlights of the week was working on a Java program that checks if a string is a palindrome. This program gave me a chance to practice taking user input, cleaning the input by removing symbols and ignoring case, and using a loop to compare characters from both ends of the string. It tied together several concepts we learned including string handling and logical thinking. Overall this week helped me build a stronger understanding of both data structures and algorithm efficiency while applying those ideas in code.
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