This week was a good balance between learning new concepts and applying them in code. I explored two sorting algorithms, Counting Sort and Radix Sort which work without making comparisons and are very efficient for certain types of numbers. I strengthened my understanding of dynamic programming by solving problems like coin collection and coin-row, and saw how it can divide and conquer solutions much faster. On the graph side, I worked with Warshall’s algorithm for transitive closures and Floyd’s algorithm for all pairs shortest paths both of which build on dynamic programming ideas. I also learned the greedy technique through Prim’s algorithm for finding minimum spanning trees. These ideas all came together through Java projects and problem-solving practice.
Posts
Showing posts from August, 2025
- Get link
- X
- Other Apps
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.