Algorithms Solve Problems
Algorithm Efficiency
Time
Problems
Distributed Algorithms
100

Problem

A general description of a task that can (or cannot) be solved with an algorithm

100

Efficiency

A measure of how many steps are needed to complete an algorithm

100

Reasonable Time

Algorithms with a polynomial efficiency or lower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time. 

100

Decision Problems

a yes-or-no question on an infinite set of inputs

100

Sequential Computing

programs run in order, one command at a time

200

Algorithm

a finite set of instructions that accomplish a task

200

Linear Search

A search algorithm that checks each element of a list, in order, until the desired value is found or all elements in the list have been checked.

200

Unreasonable Time

Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.

200

Optimization Problems

maximizing or minimizing a real function by systematically choosing input values from within an allowed set and computing the value of the function.



200

Parallel Computing

programs are broken into small pieces, some of which are run simultaneously



300

Sequencing

Putting steps in an order

300

Binary Search

A search algorithm starts in the middle of a sorted set of numbers and removes half of the data; this process repeats until the desired value is found or all elements have been eliminated

300

What line is considered unreasonable?


Orange 

300

Heuristics

provide a "good enough" solution to a problem when an actual solution is impractical or impossible

300

Distributed Computing

programs are run by multiple devices

400

Selection

Deciding which steps to do next

400

When is binary search more efficient?

Binary Search is more optimized and efficient than Linear Search in many ways, especially when the elements are in sorted order and are large.

400

What lines are considered reasonable?

Pink, purple, blue and green
400

Undecidable Problem

a problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer


400

Speedup

the time used to complete a task sequentially divided by the time to complete a task in parallel

500

Iteration

Doing some steps over and over

500

When is linear search more efficient?

Linear search is more efficient when the numbers are not in a sorted list and are smaller.

500

Do unreasonable algorithms solve problems correctly? 

It's important to recognize that an unreasonable algorithm still solves a problem correctly! It just takes an unreasonably long time.

500

How would you solve the traveling salesman problem?

Use a heuristic to provide a good enough answer. 

500

What is this an example of? 

Distributed Computing