1.2 Fundamentals of Algo Problem Solving Flashcards

1
Q

An input to an algorithm specifies an _____ of the problem the algorithm
solves. It is very important to specify exactly the set of instances the algorithm
needs to handle.

A

instance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

The central assumption of the RAM model does not hold for some newer
computers that can execute operations concurrently, i.e., in parallel. Algorithms
that take advantage of this capability are called ___ ____

A

parallel algorithms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

algorithms designed to be executed on such machines (von Neumann machines) are called ____ algorithms

A

sequential

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

The next principal decision is to choose between solving the problem exactly or
solving it approximately. In the former case, an algorithm is called an ____ _____; in the latter case, an algorithm is called an approximation algorithm.
Why would one opt for an approximation algorithm? First, there are important problems that simply cannot be solved exactly for most of their instances; examples
include extracting square roots, solving nonlinear equations, and evaluating definite integrals. Second, available algorithms for solving a problem exactly can be
unacceptably slow because of the problem’s intrinsic complexity

A

exact algorithm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

a general approach to solving problems algorithmically that is applicable to a variety of problems from different areas of computing.

A

algorithm design technique

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Once an algorithm has been specified, you have to prove its _____. That is,
you have to prove that the algorithm yields a required result for every legitimate
input in a finite amount of time.

A

correctness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

For some algorithms, a proof of correctness is quite easy; for others, it can be quite complex. A common technique for proving correctness is to use ____ _____ because an algorithm’s iterations provide a natural sequence of steps needed for such proofs. It might be worth mentioning that although tracing the algorithm’s performance for a few specific inputs can be a very worthwhile activity, it cannot prove the algorithm’s correctness conclusively. But in order to show that an algorithm is incorrect, you need just one instance of its input for which the algorithm fails.

A

mathematical induction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

We usually want our algorithms to possess several qualities. After correctness,
by far the most important is _____

A

efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

indicating how fast the algorithm runs

A

time efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

indicating how much extra memory it uses

A

space efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Unlike efficiency, which can be precisely defined and investigated with mathematical rigor,
_______, like beauty, is to a considerable degree in the eye of the beholder.

A

simplicity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Yet another desirable characteristic of an algorithm is ______. There are,
in fact, two issues here: generality of the problem the algorithm solves and the
set of inputs it accepts.

A

generality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

As a practical matter, the validity of programs is still established by ______.

A

testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly