Data Structure and Algorithms Using C++. Sachi Nandan Mohanty
Чтение книги онлайн.

Читать онлайн книгу Data Structure and Algorithms Using C++ - Sachi Nandan Mohanty страница 8

Название: Data Structure and Algorithms Using C++

Автор: Sachi Nandan Mohanty

Издательство: John Wiley & Sons Limited

Жанр: Программы

Серия:

isbn: 9781119752035

isbn:

СКАЧАТЬ

      An algorithm is said to be accurate and truthful only when it provides the exact wanted output.

      The efficiency of an algorithm depends on the time and space complexities. The complexity of an algorithm is the function which gives the running time and/or space in terms of the input size.

       Steps Required to Develop an Algorithm

       Finding a method for solving a problem. Every step of an algorithm should be defined in a precise and in a clear manner. Pseudo code is also used to describe an algorithm.

       The next step is to validate the algorithm. This step includes all the steps in our algorithm and should be done manually by giving the required input, perform the required steps including in our algorithm and should get the required amount of output in a finite amount of time.

       Finally implement the algorithm in terms of programming language.

       Mathematical Notations and Functions

       ❖ Floor and Ceiling Functions

       Floor function returns the greatest integer that does not exceed the number.

       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 СКАЧАТЬ