An algorithm is a finite set of steps to solve a particular problem. It has characteristics like definiteness, finiteness, and effectiveness. The complexity of an algorithm, including time and space complexity, depends on factors like the input size and how the requirements change as the input size increases. Time and space complexity are usually expressed as a function of the input size n. Algorithms can be categorized based on their time complexity, such as constant, logarithmic, linear, or exponential time using Big O notation.
An algorithm is a finite set of steps to solve a particular problem. It has characteristics like definiteness, finiteness, and effectiveness. The complexity of an algorithm, including time and space complexity, depends on factors like the input size and how the requirements change as the input size increases. Time and space complexity are usually expressed as a function of the input size n. Algorithms can be categorized based on their time complexity, such as constant, logarithmic, linear, or exponential time using Big O notation.
An algorithm is a finite set of steps to solve a particular problem. It has characteristics like definiteness, finiteness, and effectiveness. The complexity of an algorithm, including time and space complexity, depends on factors like the input size and how the requirements change as the input size increases. Time and space complexity are usually expressed as a function of the input size n. Algorithms can be categorized based on their time complexity, such as constant, logarithmic, linear, or exponential time using Big O notation.
An algorithm is a finite set of steps to solve a particular problem. It has characteristics like definiteness, finiteness, and effectiveness. The complexity of an algorithm, including time and space complexity, depends on factors like the input size and how the requirements change as the input size increases. Time and space complexity are usually expressed as a function of the input size n. Algorithms can be categorized based on their time complexity, such as constant, logarithmic, linear, or exponential time using Big O notation.
Introduction to Algorithm An algorithm is finite set of steps defining the
solution of a particular problem. It can be expressed in English like
language, called pseudocode, in programming language or in the form of flowchart. www.eshikshak.co.in 3. Characteristics Input There are zero or more values which are externally supplied. Output At least one value is produced Definiteness Each step must be clear and unambiguous Finiteness If we trace the steps of an algorithm, then for all cases, the algorithm must terminate after a finite number of steps Effectiveness Each step must be sufficiently basic that it can in principal be carried out by a person using only paper and pencil www.eshikshak.co.in 4. Algorithm Complexity There are basically two aspects of computer programming. Data Organization (i.e Data & structure) Algorithm The choice of a particular algorithm depends on the following consideration : Time Complexity (Performance Requirements) Space Complexity (Memory Requirements) www.eshikshak.co.in 5. Space Complexity It means the amount of memory, algorithm or program needs to run to completion. Some of the reasons for studying space complexity are If a multi user system Sufficient memory is available to run the program www.eshikshak.co.in 6. Space Complexity (Cont.) The space needed by a program consists of the following components. Instruction Space : Space needed to store the executable version of the program Data Space : Space needed to store all constants, variable values and has further following components Constants, variables, structured variables like array and structure Dynamically allocated space www.eshikshak.co.in 7. Space Complexity (Cont.) Environmental Stack Space : Space needed to store the information needed to resume the suspended functions. Return Address Values of all local variables and the values of formal parameters in the function being involved. www.eshikshak.co.in 8. Time Complexity It means the amount of time it needs to run to completion Reasons for studying time complexity Interested to know in advance that whether a program will provide a satisfactory real time response There may be several possible solutions with different time requirements www.eshikshak.co.in 9. Expressing Space and TimeComplexity The space and/or time complexity is usually expressed in form of the function f(n) Where n is the input size for a given instance of the problem being solved. Expressing space and/ or time complexity as a function has following reasons We may be interested
to predict the rate of growth of complexity as the size of problem increases.
To Compare the complexities of two or more algorithm Since in modern computers, the memory is not a sence constraint, therefore, our analysis of www.eshikshak.co.in algorithms will be on the basis of time complexity. 10. Big O Notation Big O is a characterization scheme that allows to measure properties of algorithms such time and space complexity. It is useful to set the prerequisites of algorithms and to develop and design efficient algorithms in terms of time and space complexity. www.eshikshak.co.in 11. Categories of Algorithm Based on Big O notation, the algorithm can be categorized as follows Constant time O(1) Logarithmic time O(log n) Linear time O(n) Polynomial time O(nk) (for k > 1) Exponentail time O(kn) for k > 1 www.eshikshak.co.in 12. Algorithm Analysis Different ways or algorithms to solve a problem. Hence, some of the algorithm may be more efficient than the others There are different types of time complexities which can be analyzed for an algorithm Best Case Time Analysis Average Case Time Analysis Worst Case Time Analysis www.eshikshak.co.in 13. Best Case Time Complexity It is a measure of the minimum time that the algorithm will require for an input of size n. The running time of many algorithms varies not only for the inputs of different sizes but also for the different inputs of same size Example : Sorting or Searching www.eshikshak.co.in 14. Worst Case Time Complexity The worst case time complexity of an algorithm is a measure of the maximum time that the algorithm will require for an input of size n. Example : If n input data items are supplied in reverse order for any sorting algorithm, the algorithm will require n2 operations to perform the sort. www.eshikshak.co.in 15. Average Case Time Complexity The time that an algorithm will require to execute a typical input data of size n is known as average case time complexity. www.eshikshak.co.in