CST 370 - Design and Analysis of Algorithms - Week 1
This week in CST 370, I gained a foundational understanding of algorithms and their importance in solving computational problems efficiently. I learned that an algorithm is a sequence of clear and finite instructions designed to solve a problem for any valid input. Euclid's algorithm for calculating the greatest common divisor (GCD) stood out as an excellent example of how simple steps can lead to powerful solutions. Also, I learned about alternative methods for GCD calculation, such as the Consecutive Integer Checking Algorithm and the Middle-School Procedure, which showed different approaches to solving the same problem. These methods helped me understand the complexity of algorithm design and how problem solving can be approached from multiple perspectives.
I also learned more about data structures and algorithm analysis, which are crucial for evaluating the efficiency of solutions. Understanding the principles of sorting and searching was important in order to understand algorithms, especially learning how stable and in place sorting algorithms optimize memory usage and maintain order. I learned basic data structures like stacks and queues, each with unique principles like LIFO and FIFO, and their specific applications. Graph theory and trees were another focus, with graphs representing real world networks and trees being a specialized, acyclic type of graph used for efficient searching and data organization. Finally, I was introduced to algorithm analysis, learning how time and space complexity impact the scalability of algorithms, which deepened my understanding of why some solutions are more optimal than others.
Comments
Post a Comment