BrainScapeDeck_IT_1.1_20190609_215319 Flashcards
Definition
What is an algorithm?
Terminology
An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time.
Definition
What is an assertion?
Terminology
An assertion is a logical statement on a program (execution) state.
Definition
What is Big-O notation?
Terminology
A function f(n) is in O(g(n)) (read “f is in big oh of g”) if there are positive numbers c and n such that for all n ≥ n it holds that t(n) cg(n).
Definition
What is computational complexity?
Terminology
The (best-case/worst-case) computational (time) complexity of an algorithm is the number of elementary steps T (n) needed for computing its output for an input of a size n (in the best/worst case).
Definition
What is the Decision Problem?
Terminology
A computational problem is called a decision problem if the required output for each input is Boolean (yes or no). Inputs for which output is yes (True) are a called yes-input. Inputs for which output is no (False) are a called no-input.
Definition
What is Invariant?
Terminology
An assertion INV is a loop invariant for a loop if the loop initialisa- tion will yield a state in which INV holds and every execution of the loop body yields a state in which INV holds again (if run in any state in which INV holds and the loop exit condition does not hold).
Definition
What is Lexicographic order?
Terminology
Let x and y be two sequences containing mutually com- parable elements. Then we call x lexicographically smaller than y if either
a) up to some position i (exclusive) all elements of x and y are equal and x[i] < y[i] or b) if x is a proper prefix of y, i.e., x is shorter than y and the leading positions of y contain exactly the same element as x.
Definition
What are ‘NP, complexity class’?
Terminology
The class NP is the class of decision problems D that have a polynomial time verification algorithm A. That is, A accepts as inputs pairs of D-inputs x and short certificates c (the length of c must be polynomially bounded in the length of x), and for each D-input x there is a certificate c such that A(x, c) = True if and only if x is a yes-input of D.
Definition
What is NP-complete?
Terminology
A decision problem D is NP-complete if it is in NP and all problems in NP are polynomially reducible to D.
Definition
What is Permutation?
Terminology
A sequence a is a permutation of a sequence b if a and b contain the same elements at the same number of positions.
Definition
What are ‘P, complexity class’?
Terminology
The class P is the class of decision problems that can be solved by a polynomial time algorithm
Definition
What is Polynomial time?
Terminology
An algorithm is called polynomial time if its worst-case time complexity T (n) is in O(p(n)) for some polynomial p (i.e., p(n) = n, p(n) = n², p(n) = n³, etc.).
Definition
What is Polynomially reducible?
Terminology
A decision problem D1 is polynomially reducible to a decision problem D2 if there is a function t that transforms inputs of D1 to inputs of D2 such that t is computable by a polynomial time algorithm and maps yes-inputs of D1 to yes-inputs of D2 and no-inputs of D1 to no-inputs of D2.
Definition
What is an Adjacency Matrix?
Data structure
An adjacency matrix is an n × n table with 0/1 entries that represent a graph tt = (V, E) of n vertices by storing in row i and column j whether there is an edge between vertices i and j (0 means no edge, 1 means edge present).
Definition
What is an Adjacency List?
Data structure
An adjacency list is a list containing n lists that represents a graph of n vertices by storing in the i-th list the indices of the vertices adjacent to vertex i in order.
Definition
What is Binary Search Tree?
Data structure
A binary search tree is a binary tree where all vertices are labelled with mutually comparable keys and that satisfies the following order property: for each vertex v with label k the labels of all vertices in the left subtree of v are less or equal to l and the labels of all vertices in the right subtree of v or greater or equal to k.
Definition
What is a Bit List?
Data structure
A bit list is a list of 0/1 entries that represents a sub-selection of elements of some base list of options of the same length through the fol- lowing convention: the i-th option is present in the sub-selection if the i-th element of the bit list is 1 (and 0 otherwise).