KEMBAR78
Complexity analysis - The Big O Notation | PPTX
Complexity Analysis
OOP AND DATA STRUCTURES
ENGR. JAWAD ALI
http://web.mit.edu/16.070/www/lecture/big_o.pdfDocument available on:
Difference between complexity and
computation time
 Computation time: The interval of solving a problem based on the embedded system
architecture. (in the field of computer sciences)
 Complexity: The art of handling a problem based on the algorithm designed to solve a case.
OR
 The difficulty faced by the processor in solving a deployed case on it.
Example
ex = 1 + x + x2/2 + x3/3... x is Real
K=2*3
L=2^3
f(x) = 2 +3x for x = 5
K=2+2+2
L=2*2*2
Big O Notation
 Big O notation (with a capital letter O, not a zero), also called Landau's symbol, is a
symbolism used in complexity theory, computer science, and mathematics to
describe the asymptotic behavior of functions. Basically, it tells you how fast a
function grows or declines
Functions defined in big o notation
 O(1) constant(slowest)
 O(log(n)) logarithmic
 O((log(n))c) polylogarithmic (same as O(log(n)) )
 O(n) linear
 O(n2) quadratic
 O(nc) polynomial
 O(cn) exponential(fastest)
Understanding big o
 Efficiency covers lots of resources, including:
1. CPU (time) usage (The most important)
2. Memory usage
3. Disk usage
4. Network usage
Performance vs complexity
 1. Performance: how much time/memory/disk/... is actually used when a program
is run. This depends on the machine, compiler, etc. as well as the code.
 2. Complexity: how do the resource requirements of a program or algorithm scale,
i.e., what happens as the size of the problem being solved gets larger?
More about performance
 The time required by a function/procedure is proportional to the number of "basic
operations" that it performs, like;
1. one arithmetic operation (e.g., +, *).
2. one assignment (e.g. x := 0)
3. one test (e.g., x = 0)
4. one read (of a primitive type: integer, float, character, Boolean)
5. one write (of a primitive type: integer, float, character, Boolean)
Regarding computing
We express complexity using big-O notation.
For a problem of size N:
A constant-time algorithm is "order 1": O(1)
A linear-time algorithm is "order N": O(N)
A quadratic-time algorithm is "order N squared": O(N2)
Infinite Time algorithm is “Order infinity”: O(inf)
Finding complexity
Generally, we have 6 cases
1. Statements
2. If else
3. Loop
4. Nested loop
5. Function call
6. When
Statement
statement 1;
statement 2;
...
statement k;
The total time is found by adding the times for all
statements:
total time = time(statement 1) + time(statement 2) + ...
+ time(statement k)
If each statement is "simple" (only involves basic
operations) then the time for each statement is constant
and the total time is also constant: O(1).
If Else
if (cond) then
block 1 (statements)
else
block 2 (statements)
end if;
Here, either block 1 will execute, or block 2 will execute.
Therefore, the worst-case time is the slower of the two
possibilities:
max(time(block 1), time(block 2))
If block 1 takes O(1) and block 2 takes O(N), the if-then-
else statement would be O(N)
LOOP
for I in 1 .. N loop
sequence of statements
end loop
The loop executes N times, so the sequence
of statements also executes N times.
If we assume the statements are O(1), the
total time for the for loop is N * O(1), which
is O(N) overall.
Nested LOOP
for I in 1 .. N loop
for J in 1 .. M loop
sequence of statements
end loop;
end loop;
The statements in the inner loop execute a
total of N * M times. Thus, the complexity is
O(N * M).
Function Calls
The behavior of function is same as statement if called once
Its behavior is statement in loop if it is called in loop
Its behavior is more like nested loop if it is called inside loop and it has an
characteristic loop inside as well
When
 The behavior of such statement is not defined by time or cycles of processing
 It may occur the very next moment
 It might not occur even after the device is expired
 Such algorithms are limited by some thresholds or bounds, becomes O(N)
 Used in training and testing of Artificial Neural Networks and such
End UP…

Complexity analysis - The Big O Notation

  • 1.
    Complexity Analysis OOP ANDDATA STRUCTURES ENGR. JAWAD ALI http://web.mit.edu/16.070/www/lecture/big_o.pdfDocument available on:
  • 2.
    Difference between complexityand computation time  Computation time: The interval of solving a problem based on the embedded system architecture. (in the field of computer sciences)  Complexity: The art of handling a problem based on the algorithm designed to solve a case. OR  The difficulty faced by the processor in solving a deployed case on it.
  • 3.
    Example ex = 1+ x + x2/2 + x3/3... x is Real K=2*3 L=2^3 f(x) = 2 +3x for x = 5 K=2+2+2 L=2*2*2
  • 4.
    Big O Notation Big O notation (with a capital letter O, not a zero), also called Landau's symbol, is a symbolism used in complexity theory, computer science, and mathematics to describe the asymptotic behavior of functions. Basically, it tells you how fast a function grows or declines
  • 5.
    Functions defined inbig o notation  O(1) constant(slowest)  O(log(n)) logarithmic  O((log(n))c) polylogarithmic (same as O(log(n)) )  O(n) linear  O(n2) quadratic  O(nc) polynomial  O(cn) exponential(fastest)
  • 6.
    Understanding big o Efficiency covers lots of resources, including: 1. CPU (time) usage (The most important) 2. Memory usage 3. Disk usage 4. Network usage
  • 7.
    Performance vs complexity 1. Performance: how much time/memory/disk/... is actually used when a program is run. This depends on the machine, compiler, etc. as well as the code.  2. Complexity: how do the resource requirements of a program or algorithm scale, i.e., what happens as the size of the problem being solved gets larger?
  • 8.
    More about performance The time required by a function/procedure is proportional to the number of "basic operations" that it performs, like; 1. one arithmetic operation (e.g., +, *). 2. one assignment (e.g. x := 0) 3. one test (e.g., x = 0) 4. one read (of a primitive type: integer, float, character, Boolean) 5. one write (of a primitive type: integer, float, character, Boolean)
  • 9.
    Regarding computing We expresscomplexity using big-O notation. For a problem of size N: A constant-time algorithm is "order 1": O(1) A linear-time algorithm is "order N": O(N) A quadratic-time algorithm is "order N squared": O(N2) Infinite Time algorithm is “Order infinity”: O(inf)
  • 10.
    Finding complexity Generally, wehave 6 cases 1. Statements 2. If else 3. Loop 4. Nested loop 5. Function call 6. When
  • 11.
    Statement statement 1; statement 2; ... statementk; The total time is found by adding the times for all statements: total time = time(statement 1) + time(statement 2) + ... + time(statement k) If each statement is "simple" (only involves basic operations) then the time for each statement is constant and the total time is also constant: O(1).
  • 12.
    If Else if (cond)then block 1 (statements) else block 2 (statements) end if; Here, either block 1 will execute, or block 2 will execute. Therefore, the worst-case time is the slower of the two possibilities: max(time(block 1), time(block 2)) If block 1 takes O(1) and block 2 takes O(N), the if-then- else statement would be O(N)
  • 13.
    LOOP for I in1 .. N loop sequence of statements end loop The loop executes N times, so the sequence of statements also executes N times. If we assume the statements are O(1), the total time for the for loop is N * O(1), which is O(N) overall.
  • 14.
    Nested LOOP for Iin 1 .. N loop for J in 1 .. M loop sequence of statements end loop; end loop; The statements in the inner loop execute a total of N * M times. Thus, the complexity is O(N * M).
  • 15.
    Function Calls The behaviorof function is same as statement if called once Its behavior is statement in loop if it is called in loop Its behavior is more like nested loop if it is called inside loop and it has an characteristic loop inside as well
  • 16.
    When  The behaviorof such statement is not defined by time or cycles of processing  It may occur the very next moment  It might not occur even after the device is expired  Such algorithms are limited by some thresholds or bounds, becomes O(N)  Used in training and testing of Artificial Neural Networks and such
  • 17.