CST 370 - Design and Analysis of Algorithms - Week 2

 


This week in CST-370, we learned more about algorithm analysis and how to determine the efficiency of algorithms using asymptotic notations such as Big O, Theta, and Omega. These notations help categorize an algorithm's growth rate based on its input size, which is important for understanding its performance under different conditions. We reviewed more about the importance of identifying the basic operation within an algorithm and counting how many times it executes to estimate its time complexity. The professor's explanations helped clarify concepts that were more challenging to understand from the textbook, particularly simplifying time complexity expressions using standard rules. We also focused on learning the differences between analyzing recursive and non-recursive algorithms, with recursive algorithms often requiring recurrence relations and substitution methods for accurate analysis.

Additionally, we relearned about the brute force approach, which is a straightforward problem solving method that directly applies the problem definition without optimization. Selection sort and bubble sort were used as classic examples of brute force algorithms, where elements are compared and swapped repeatedly to achieve sorted order. The textbook provided a good explanation of these sorting algorithms, emphasizing their simplicity and ease of implementation regardless of their inefficiencies for large inputs. The Tower of Hanoi puzzle was another topic covered this week, demonstrating recursion in a real world scenario. Overall, this week’s material helped with my understanding of algorithm efficiency, recursion, and basic sorting techniques, emphasizing the importance of choosing appropriate algorithms based on problem constraints.


Comments

Popular posts from this blog

CST 334 - Operating Systems - Week 6

CST 363 - Introduction to Database - Week 3

CST 311 - Intro to Computer Networks - Week 1