This week, I learned about several important concepts in algorithms and data structures. From the recorded videos, I learned how pseudocode is used to describe algorithms in a clear and language-independent way. I also learned about different problem types, such as sorting, searching, graph problems, and tree data structures. Topics like graphs with vertices and edges, the Traveling Salesman Problem, and trees such as binary trees and binary search trees helped me understand how real-life problems can be modeled using data structures. The quizzes helped reinforce ideas like basic operations, time complexity, stable sorting, and graph properties.
One aha moment for me was understanding how binary search trees make searching efficient. By comparing values and choosing to go left or right, the search space becomes smaller very quickly. Another important realization was how sorting can improve searching performance, which explains why these two topics are often discussed together. I also better understood how pseudocode connects informal ideas to more precise algorithm descriptions.
For the homework, I chose C++ instead of Java, which I am comfortable with. Writing the palindrome program helped me practice handling strings, ignoring non-alphanumeric characters, and thinking carefully about algorithm logic instead of just coding quickly. Going forward, I want to focus more on time complexity analysis, especially understanding best case, worst case, and how different algorithms compare. I also want to learn more about graph and tree algorithms, since they seem very important and widely used in computer science.
Comments
Post a Comment