CS-4 (LESSON 2) Flashcards

1
Q

The amount of memory required by an algorithm to run to completion

A

Space Complexity

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

The size required to store certain data/variables, that is independent of the size of the problem:
- e.g. name of the data collection
- same size for classifying 2GB or 1MB of texts

A

Fixed part

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

Space needed by variables, whose size is dependent on the size of the problem:
- e.g. actual text
- load 2GB of text VS. load 1MB of text

A

Variable part

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

Often more important than space complexity

Algorithms running time is an important issue

3-4GHz processors on the market

A

Time Complexity

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

varies with the inputs, and typically grows with the size of the inputs.

To evaluate an algorithm or to compare two algorithms, we focus on their relative rates of growth with the increase of the input size.

A

Running Time

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

Write a program to implement the algorithm.

Run this program with inputs of varying size and composition.

Get an accurate measure of the actual running time (e.g. system call date).

A

Experimental Approach

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

The algorithm has to be implemented, which may take a long time and could be very difficult.

Results may not be indicative for the running time on other inputs that are not included in the experiments.

In order to compare two algorithms, the same hardware and software must be used.

A

Limitations of Experimental Studies

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

Based on high-level description of the algorithms, rather than language dependent implementations

Makes possible an evaluation of the algorithms that is independent of the hardware and software environments

A

Use a Theoretical Approach

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

High-level description of an algorithm.

More structured than plain English.

Less detailed than a program.

Preferred notation for describing algorithms.

Hides program design issues.

A

Pseudocode

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

The basic computations performed by an algorithm

Identifiable in pseudocode

Largely independent from the programming language

A

Primitive Operations

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

Based on primitive operations (low-level computations independent from the programming language)

A

Low Level Algorithm Analysis

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

By inspecting the code, we can determine the number of primitive operations executed by an algorithm, as a function of the input size.

A

Counting Primitive Operations

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

Changing computer hardware / software

The linear growth rate of the running time T(n) is an intrinsic property of algorithm arrayMax

A

Growth Rate of Running Time

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

Growth rates of functions:

A

Linear  n

Quadratic  n2

Cubic  n3

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

The growth rate is not affected by
___?___ or
lower-order terms

A

Constant Factors

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