Week 1 Algorithms: Efficiency, Analysis, and Order: INFSCI 2591 Fall 2020

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Week 1

Algorithms: Efficiency, Analysis,


and Order

INFSCI 2591
Fall 2020

8/25/2020 INFSCI 2591, Fall 2020 1


Learning Objectives
• Analyze techniques for solving problems
• Define an algorithm
• Define growth rate of an algorithm as a function
of input size
• Define worse, average, and best case complexity
analysis of algorithms
• Classify functions based on growth rate
• Define growth rate: Big O, Theta, and Omega
•8/25/2020
Define growth rate of an algorithm as a
INFSCI 2591, Fall 2020 2

function of input size


Reading Instructions
• Read the entire Chapter 1
• As you notice from the learning objectives, the
purpose of this chapter is to prepare you for analysis
of algorithms
• This chapter has some topics that may seem a bit
abstract, at least the first time you read it or if this is
the first time you read about this topic
• Do not worry if you are unable to fully follow
everything in this chapter and with practice you will
learn the topic gradually as almost in every chapter
there are examples and exercises on the topic
8/25/2020 INFSCI 2591, Fall 2020 3
Notes: Algorithms
• Read the entire chapter and pay attention to:
– Algorithm 1.1 (pages 4-5): Sequential Search
– Algorithm 1.3 (pages 7-8): Exchange sort
– Algorithm 1.5 (page 10): Binary Search
– Algorithm 1.6 (page 13): nth Fibonacci term
(Recursive)
– Algorithm 1.7 (page 16): nth Fibonacci term
(Iterative)
8/25/2020 INFSCI 2591, Fall 2020 4
Notes: Analysis of Algorithms
• Read the entire chapter and pay attention to:
– Analysis of Algorithm 1.3 (page 20): Every-Case Time
Complexity (Exchange Sort)
– Analysis of Algorithm 1.1 (pages 21-22): Worst-Case
Time Complexity (Sequential Search)
– Analysis of Algorithm 1.1 (pages 22-23): Average-Case
Time Complexity (Sequential Search)
– Analysis of Algorithm 1.1 (page 24): Best-Case Time
Complexity (Sequential Search)

8/25/2020 INFSCI 2591, Fall 2020 5


More Reading
• Considering there are algorithms with recursive logic, you
should read these selected sections below in Appendix B of the
textbook to help you analyze time complexity of recursive
algorithms
• To determine time complexity of recursive algorithms an
understanding of recursive equations is needed
• Appendix B of the textbook describes recursive equations
• Read only Sections B.1 (pages 603-607) and B.3 (pages 626-
627)
• For the purpose of this course you only need to know these
selected recursive equations and how to use them in determining
time complexity of recursive algorithms

8/25/2020 INFSCI 2591, Fall 2020 6