Algorithm 110801105245-phpapp01

15
ALGORITHM www.eshikshak. co.in

description

201

Transcript of Algorithm 110801105245-phpapp01

Page 1: Algorithm 110801105245-phpapp01

ALGORITHM

www.eshikshak.co.in

Page 2: Algorithm 110801105245-phpapp01

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

Page 3: Algorithm 110801105245-phpapp01

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

Page 4: Algorithm 110801105245-phpapp01

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

Page 5: Algorithm 110801105245-phpapp01

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

Page 6: Algorithm 110801105245-phpapp01

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

Page 7: Algorithm 110801105245-phpapp01

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

Page 8: Algorithm 110801105245-phpapp01

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

Page 9: Algorithm 110801105245-phpapp01

Expressing Space and Time Complexity● 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 algorithms will be on the basis of time complexity.www.eshikshak.co.in

Page 10: Algorithm 110801105245-phpapp01

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

Page 11: Algorithm 110801105245-phpapp01

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

Page 12: Algorithm 110801105245-phpapp01

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

Page 13: Algorithm 110801105245-phpapp01

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

Page 14: Algorithm 110801105245-phpapp01

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

Page 15: Algorithm 110801105245-phpapp01

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