### Unit 6: Algorithm Efficiency

There are a number of parameters that developers must consider when designing Data Structures. One of the most important parameters relates to the efficiency of the algorithms (i.e. searching algorithms) that can be used on the Data Structures. This unit will explain how to measure an algorithm's efficiency, identify problems that arise when taking these measurements, and present ways of representing algorithm efficiency.

**Completing this unit should take approximately 3 hours.**

Upon successful completion of this unit, you will be able to:

- examine algorithms relative to their resource utilization.
- define Big-O analysis.
- understand the mathematical underpinnings of Big-O analysis.
- discuss performance relative to a balance of computer-resource use.
- apply algorithm analysis to basic blocks of code.

- examine algorithms relative to their resource utilization.

### 6.1: The Importance of Algorithm Efficiency

What is "algorithm efficiency"? This article gives a solid explanation.

Watch this lecture from 31:30 until the end. It expands on our introduction to algorithm efficiency, and will give you a good sense of what computer efficiency is and why it is important.

### 6.2: Big-O Analysis

Big-O analysis is a formal notation for discussing algorithm efficiency. This article introduces that notation.

### 6.3: Discussions on Algorithm Efficiency

For an excellent discussion on this topic that ties many pieces together, read Chapter 3. It is important to understand how to determine the resource complexity of an algorithm so that you can make worthy implementation choices. Those choices have to be based on all resources employed by the algorithm, to include time, memory, data interchange, hardware, etc.

### 6.4: Measuring Algorithm Efficiency

Watch this video to learn about the mathematics behind Big-O analysis. This type of discussion is important as your algorithms' complexity increases.

### 6.5: Space-Time Tradeoff

Most discussion on algorithm efficiency speaks to run-time, efficiency in CPU utilization. However, especially with cloud computing, memory utilization and data exchange volume must also be considered. This page gives a brief introduction to this topic.

### Unit 6 Assessment

Take this assessment to see how well you understood this unit.

- This assessment
**does not count towards your grade**. It is just for practice! - You will see the correct answers when you submit your answers. Use this to help you study for the final exam!
- You can take this assessment as many times as you want, whenever you want.

- This assessment