×
I'm working hard to be someone I'll be proud of.
--Your friends at LectureNotes
Close

Design And Analysis Of Algorithm

by Pavan SPavan S
Type: NoteSpecialization: Computer Science EngineeringViews: 14Uploaded: 4 months ago

0 User(s)

Share it with your friends

Suggested Materials

Leave your Comments

Contributors

Pavan S
Pavan S
W or ld LECTURE NOTES ON DESIGN AND ANALYSIS OF ALGORITHMS A ll JN TU Department of Computer Science and Engineering
CONTENTS or Algorithm Performance of Programs Algorithm Design Goals Classification of Algorithms Complexity of Algorithms Rate of Growth Analyzing Algorithms The Rule of Sums The Rule of products The Running time of Programs Measuring the running time of programs Asymptotic Analyzing of Algorithms Calculating the running time of programs General rules for the analysis of programs ld CHAPTER 1 BASIC CONCEPTS W CHAPTER 2 Advanced Data Structures and Recurrence Relations JN TU Priority Queue, Heap and Heap sort Heap Sort 2.3 Priority Queue implementation using heap tree Binary Search trees Balanced Trees Dictionary Disjoint Set Operations Recurrence Relations – Iterative Substitution Method Recursion Tree The Guess-and test The Master Theorem Method Cold Form expression Solving Recurrence relations CHAPTER 3 Divide And Conquer A ll General Method Control Abstraction of Divide and Conquer Binary Search External and Internal path length Merge Sort Strassen’s Matrix Multiplication Quick Sort Straight Insertion Sort CHAPTER 4 Greedy Method 4.1 General Method Control Abstraction Knapsack Problem Optimal Storage on Tapes Job Sequencing with deadlines Optimal Merge Patterns Huffman Codes I
Graph Algorithms Multi Storage graphs All Pairs Shortest paths Traveling Sales Person problem Optimal Binary Search Tree 0/1 Knapsack Reliability design CHAPTER 7 Backtracking W Techniques for traversal of Binary tree Techniques for graphs Representation of Graph and Digraphs Depth First and Breadth First Spanning trees Articulation Points and bi-connected components Articulation points by Depth First Search Game planning Alpha-Beta pruning AND/OR Graphs or CHAPTER 6 Basic Traversal and Search Techniques JN TU General method Terminology N-Queens problem Sum of Subsets Graph Coloring( for planar graphs) Hamiltonian Cycles 0/1 Knapsack Traveling Sales Person using Backtracking CHAPTER 8 Branch and Bound A ll General method Least Cost (LC) Search Control Abstraction for LC-Search Bounding The 15-Puzzle problem LC Search for 15-Puzzle Problem Job Sequencing with deadlines Traveling Sales Person problem 0/1 Knapsack II ld CHAPTER 5 Dynamic programming
Chapter 1 ld Basic Concepts Algorithm or An Algorithm is a finite sequence of instructions, each of which has a clear meaning and can be performed with a finite amount of effort in a finite length of time. No matter what the input values may be, an algorithm terminates after executing a finite number of instructions. In addition every algorithm must satisfy the following criteria: Input: there are zero or more quantities, which are externally supplied; W Output: at least one quantity is produced; Definiteness: each instruction must be clear and unambiguous; Finiteness: if we trace out the instructions of an algorithm, then for all cases the algorithm will terminate after a finite number of steps; JN TU Effectiveness: every instruction must be sufficiently basic that it can in principle be carried out by a person using only pencil and paper. It is not enough that each operation be definite, but it must also be feasible. In formal computer science, one distinguishes between an algorithm, and a program. A program does not necessarily satisfy the fourth condition. One important example of such a program for a computer is its operating system, which never terminates (except for system crashes) but continues in a wait loop until more jobs are entered. We represent algorithm using a pseudo language that is a combination of the constructs of a programming language together with informal English statements. Performance of a program: A ll The performance of a program is the amount of computer memory and time needed to run a program. We use two approaches to determine the performance of a program. One is analytical, and the other experimental. In performance analysis we use analytical methods, while in performance measurement we conduct experiments. Time Complexity: The time needed by an algorithm expressed as a function of the size of a problem is called the time complexity of the algorithm. The time complexity of a program is the amount of computer time it needs to run to completion. The limiting behavior of the complexity as size increases is called the asymptotic time complexity. It is the asymptotic complexity of an algorithm, which ultimately determines the size of problems that can be solved by the algorithm. 1

Lecture Notes