a general description of a task that can (or cannot) be solved with an algorithm
New cards
2
Algorithm:
a finite set of instructions that accomplish a task.
New cards
3
Efficiency:
a measure of how many steps are needed to complete an algorithm
New cards
4
Linear Search:
a search algorithm which checks each element of a list, in order, until the desired value is found or all elements in the list have been checked.
New cards
5
Binary Search:
a search algorithm that starts at 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.
New cards
6
Reasonable Time:
Algorithms with a polynomial efficiency or lower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time.
New cards
7
Unreasonable Time:
Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
New cards
8
Heuristic:
provides a "good enough" solution to a problem when an actual solution is impractical or impossible
New cards
9
Decision Problem:
a problem with a yes/no answer (e.g., is there a path from A to B?)
New cards
10
Optimization Problem:
a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?)
New cards
11
Undecidable Problem:
a problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer
New cards
12
Sequential Computing:
a model in which programs run in order, one command at a time.
New cards
13
Parallel Computing:
a model in which programs are broken into small pieces, some of which are run simultaneously
New cards
14
Distributed Computing:
a model in which programs are run by multiple devices
New cards
15
Speedup:
the time used to complete a task sequentially divided by the time to complete a task in parallel