CST 370-30 - Algorithm Design & Analysis Week 7

Week 7 Learning Journal - 

This week focused on advanced algorithm design techniques including non comparison sorting, dynamic programming, and graph algorithms such as Warshall’s and Floyd’s algorithms. I learned how algorithm efficiency changes depending on the approach used. For example, Counting Sort achieves linear time by avoiding comparisons, and Dynamic Programming reduces repeated computation through optimal substructure.

In our group bonus project, we also applied algorithmic efficiency principles. For example, we used an unordered_map for fast keyword searching with average constant time lookup. We also used a priority_queue to efficiently rank bookmarked verses. Even though we did not actually code dynamic programming or graph algorithms in our project, working on it still made me think more about why choosing the right data structure matters. When we picked unordered_map and priority_queue, I could clearly see how much easier and faster certain operations became compared to doing everything manually.

This week honestly made me more aware of how small design choices in algorithms can completely change how a program performs.

Comments

Popular posts from this blog

CST 338 Software Design - Week 1

CST 338 Software Design - Week 4

CST 334 - Week 3