Data Structure and Algorithms Using C++. Sachi Nandan Mohanty

Читать онлайн книгу.

Data Structure and Algorithms Using C++ - Sachi Nandan Mohanty


Скачать книгу

       Ceiling function returns the least integer that is not less than the number.

       ❖ Remainder FunctionTo find the remainder “mod” function is being used as

       ❖ To find the Integer and Absolute value of a numberINT(5.34) = 5 This statement returns the integer part of the numberINT(- 6.45) = 6 This statement returns the absolute as well as the integer portion of the number

       ❖ Summation SymbolTo add a series of number as a1+ a2 + a3 +............+ an the symbol Σ is used

       ❖ Factorial of a NumberThe product of the positive integers from 1 to n is known as the factorial of n and it is denoted as n!.

       Algorithemic Notations

      While writing the algorithm the comments are provided with in [ ].

      The assignment should use the symbol “: =” instead of “=”

      For Input use Read : variable name

      For output use write : message/variable name

      The control structures can also be allowed to use inside an algorithm but their way of approaching will be some what different as

       If condition, then: Statements [end of if structure]

       If...else

       If condition, then: Statements Else : Statements [end of if structure]

       If...else ladder

       If condition1, then: Statements Else If condition2, then: Statements Else If condition3, then: Statements ………………………………………… ………………………………………… ………………………………………… Else If conditionN, then: Statements Else: Statements [end of if structure]

       LOOPING CONSTRUCT

       Repeat for var = start_value to end_value by step_value Statements [end of loop] Repeat while condition: Statements [end of loop] Ex : repeat for I = 1 to 10 by 2 Write: i [end of loop]

       OUTPUT

      The complexity of programs can be judged by criteria such as whether it satisfies the original specification task, whether the code is readable. These factors affect the computing time and storage requirement of the program.

       Space Complexity

      The space complexity of a program is the amount of memory it needs to run to completion. The space needed by a program is the sum of the following components:

       A fixed part that includes space for the code, space for simple variables and fixed size component variables, space for constants, etc.

       A variable part that consists of the space needed by component variables whose size is dependent on the particular problem instance being solved, and the stack space used by recursive procedures.

       Time Complexity

      The time complexity of a program is the amount of computer time it needs to run to completion. The time complexity is of two types such as

       Compilation time

       Runtime

      The amount of time taken by the compiler to compile an algorithm is known as compilation time. During compilation time it does not calculate for the executable statements, it calculates only the declaration statements and checks for any syntax and semantic errors.

      The run time depends on the size of an algorithm. If the number of instructions in an algorithm is large, then the run time is also large, and if the number of instructions in an algorithm is small, then the time for executing the program is also small. The runtime is calculated for executable statements and not for declaration statements.

       Best case

       Worst case

       Average case

       Best Case

      Generally, most of the algorithms behave sometimes in best case. In this case, algorithm searches the element for the first time by itself.

      For example: In linear search, if it finds the element for the first time by itself, then it behaves as the best case. Best case takes shortest time to execute, as it causes the algorithms to do the least amount of work.

       Worst Case

      In worst case, we find the element at the end or when searching of elements fails. This could involve comparing the key to each list value for a total of N comparisons.

      For example in linear search suppose the element for which algorithm is searching is the last element of array or it is not available in array then algorithm behaves as worst case.

       Average Case

      Analyzing the average case behavior algorithm is a little bit complex than the best case and worst case. Here, we take the probability with a list of data. Average case of algorithm should be the average number of steps but since data can be at any place, so finding exact behavior of algorithm is difficult. As the volume of data increases, the average case of algorithm behaves like the worst case of algorithm.

      The asymptotic notations are the symbols which are used to solve the different algorithms and the notations are

       Big Oh Notation (O)

       Little Oh Notation (o)

       Omega Notation (Ω)

       Theta Notation (θ)

       Big Oh (O) Notation

      This Notation gives the upper bound for a function to within a constant factor. We write f(n) = O(g(n)) if there are +ve constants n0 and C such that to the right of n0, the value of f(n) always lies on or below Cg(n)

       Omega Notation (Ω)

      This notation gives a lower bound for a function to with in a constant factor. We write f(n) = Ωg(n) if there are positive constants n0 and C such that to the right of n0 the value of f(n) always lies on or above Cg(n)

       Theta Notation (θ)

      This notation bounds the function to within constant factors. We say f(n) = θg(n) if there exists +ve constants n0, C1 and C2 such that to the right of n0 the value of f(n) always lies between c1g(n) and c2(g(n)) inclusive.

       Little Oh Notation (o)

Скачать книгу