Knowledge in Daa

Greedy Algorithm

Greedy algorithm

Shortest Path Algorithms

Shortest Path Algorithm

Backtracking

Backtracking

Elementary Graph Algorithms

Graph Algorithms

NP - Completeness

NP - Completeness

Complete Notes

Complete notes of DAA

algorithm analysis and design

this subject helps u find the crt program which gives effecent results

DESIGN AND ANALYSIS OF ALGORITHM

An algorithm is a set of steps of operations to solve a problem performing calculation, data processing, and automated reasoning tasks. An algorithm is an efficient method that can be expressed within finite amount of time and space. An algorithm is the best way to represent the solution of a particular problem in a very simple and efficient way. If we have an algorithm for a specific problem, then we can implement it in any programming language, meaning that the algorithm is independent from any programming languages. Algorithm Design The important aspects of algorithm design include creating an efficient algorithm to solve a problem in an efficient way using minimum time and space. To solve a problem, different approaches can be followed. Some of them can be efficient with respect to time consumption, whereas other approaches may be memory efficient. However, one has to keep in mind that both time consumption and memory usage cannot be optimized simultaneously. If we require an algorithm to run in lesser time, we have to invest in more memory and if we require an algorithm to run with lesser memory, we need to have more time. Problem Development Steps The following steps are involved in solving computational problems. Problem definition Development of a model Specification of an Algorithm Designing an Algorithm Checking the correctness of an Algorithm Analysis of an Algorithm Implementation of an Algorithm Program testing Documentation Characteristics of Algorithms The main characteristics of algorithms are as follows − Algorithms must have a unique name Algorithms should have explicitly defined set of inputs and outputs Algorithms are well-ordered with unambiguous operations Algorithms halt in a finite amount of time. Algorithms should not run for infinity, i.e., an algorithm must end at some point Pseudocode Pseudocode gives a high-level description of an algorithm without the ambiguity associated with plain text but also without the need to know the syntax of a particular programming language. The running time can be estimated in a more general manner by using Pseudocode to represent the algorithm as a set of fundamental operations which can then be counted.

DAA LAB | KIIT University | 2nd Year

This contains the whole Daa lab programs . I made a zip of all . You can go through every file. I made these in codeblocks . So recommended to do in CodeBlocks

Design & Analysis of Algorithm

An Algorithm is a sequence of steps to solve a problem. Design and Analysis of Algorithm is very important for designing algorithm to solve different types of problems in the branch of computer science and information technology. This tutorial introduces the fundamental concepts of Designing Strategies, Complexity analysis of Algorithms, followed by problems on Graph Theory and Sorting methods. This tutorial also includes the basic concepts on Complexity theory.

Introduction to NP-Completeness

o far we have discussed efficient algorithms for selected problems. In this section we will discuss problems for which no efficient algorithm is known. From now on we will consider • Polynomial time algorithm is “practical”. • Exponential and worse is “impractical”. In this part of the course we will: • Introduce theory of NP-completeness • Introduce the famous P = NP open problem • Learn how to prove that a problem is NP-complete

algorithm must have the following properties

Correctness: It should produce the output according to the requirement of the algorithmFiniteness: Algorithm must complete after a finite number of instructions have been executed.An Absence of Ambiguity: Each step must be defined, having only one interpretation.Definition of Sequence: Each step must have a unique defined preceding and succeeding step. The first step and the last step must be noted.Input/output: Number and classification of needed inputs and results must be stated.Feasibility: It must be feasible to execute each instruction.Flexibility: It should also be possible to make changes in the algorithm without putting so much effort on it.Efficient - Efficiency is always measured in terms of time and space requires implementing the algorithm, so the algorithm uses a little running time and memory space as possible within the limits of acceptable development time.Independent: An algorithm should focus on what are inputs, outputs and how to derive output without knowing the language it is defined. Therefore, we can say that the algorithm is independent of language.