Table of Contents
CS702 Handouts pdf
Course Category: Computer Science/Information Technology CS702 Handouts pdf
CS702: Advanced Algorithms Analysis and Design Handouts (PDF)
In computer programming terms, an algorithm is a set of well-defined instructions for solving a particular problem. It takes a set of inputs and produces the output you want. CS702 Handouts pdf
Introduction, Underlying mathematical theory, Induction and recursion techniques in analyzing algorithms, Asymptotic notations, Search techniques, Divide-and-conquer technique, Randomized algorithms, Heuristic algorithms, Brute Force approach, Backtracking, branch-and-bound, Optimization techniques in algorithms designing, Dynamic algorithms, Greedy algorithms, Graph Theory, Searching algorithms, Minimal spanning tree algorithms, Polynomials, and FFT, Number theoretic notations, Number theoretic algorithms, RSA cryptosystems, String matching, pattern matching, NP-completeness and NP-completeness proofs.CS702 Handouts pdf
Join VU assignment solution groups and also share with friends. In these WhatsApp groups, we send solution files, VU handouts, VU past papers, and links to you. To join WhatsApp groups click the below links.
MUST JOIN VU STUDY GROUPS
CS702: Advanced Algorithms Analysis and Design
What is an algorithm?
An algorithm is a limited sequence of strictly defined commands, usually used to solve a specific problem category or to perform calculations. Algorithms are used as parameters for calculating and processing data. Algorithms are widely used in all areas of IT. In mathematics and computer science, an algorithm usually means a small process that solves a recurring problem. Algorithms are also used as descriptions to process data and play a major role in automation programs.
Qualities of Good Algorithms
- Input and output should be defined precisely.
- Each step in the algorithm should be clear and unambiguous.
- Algorithms should be the most effective among many different ways to solve a problem.
- An algorithm shouldn’t include computer code. Instead, the algorithm should be written in such a way that it can be used in different programming languages.
One Problem, Many algorithms
The given problem can be solved in a variety of ways and some methods produce more effective results than others. Algorithm analysis is a method used to measure the efficiency and effectiveness of algorithms. It helps to determine the quality of the algorithm based on a few parameters such as ease of use, storage, security, location usage, and the use of other resources.
Which algorithm is best?
- Mainly, it depends upon various factors, for example in case of sorting
- The number of items to be sorted
- The extent to which the items are already sorted
- Possible restrictions on the item values
- The kind of storage device to be used etc
Important Designing Techniques
Selecting a proper design technique for algorithms is a complex but important task. Following are some of the main algorithm design techniques:
- Brute-force or exhaustive search
- Divide and Conquer
- Greedy Algorithms
- Iterative Improvement: Improve one change at a time
- Dynamic Programming
- Transform-and-Conquer: Modify the problem first and then solve it
- Space and Time Tradeoffs: Use more space now to save time later
- Branch and Bound Algorithm
- Randomized Algorithm
It is usually important to know how many resources (such as time or storage) are required in theory in a particular algorithm. Methods are designed to analyze algorithms to obtain volume responses (ratings); for example, an algorithm that combines the elements of an n-number can have the need for O (n) time, using the big notation O. At all times the algorithm only needs to remember two values: the sum of all the elements so far, and the location its current in the input list. Therefore, it is said to have the need for space O (1), if the space required to store input numbers can be calculated, or O (n) when calculated. CS702 Handouts pdf
Different algorithms may complete the same task with a different set of instructions in less or more time, space, or ‘effort’ than others. For example, a binary search algorithm (costing O (log n)) exceeds consecutive searches (cost O (n)) when used for table checking in filtered lists or similar members.