CS 344  Rutgers Study Resources
 Rutgers
 Hari
 Find Textbooks

BFS
School: Rutgers
CE177 Schlag Fall '04 Handout # 2 Breadth First Search The input is a simple graph. This algorithm traverses each component of the graph, numbering vertices as they are encountered (bfs[u]) and saving for each vertex u the neighbor (if any) from wh

String
School: Rutgers
String matching consists of finding one or more generally, all of the occurrences of a pattern in a text. Finding a certain pattern in a text is a problem arises in textediting programs and web "surfing". Here we study various fundamental text processing

Homework 6
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #6 Reductions FarachColton Due by 5:00pm, Nov. 1. Suppose there is a C+ library on your machine which has the following function: IS (G, k ): Input: Graph G, and a number k . Output: Yes, if G has an Independent Set of size at least k ;

Homework 7
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #7 Graphs and Reductions FarachColton Due by 5:00pm, Dec. 4. 1. A graph is said to be bipartite if its vertex set can be partitioned into two sets A, B such that every edge in G has one endpoint in A and other endpoint in B . A Hamilton

Homework 8
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #8 More Reductions FarachColton Due by 4:00pm, Dec. 11. Consider the following decision problems: V C (G, k ): Input: Graph G, and an integer k . Output: Yes, if G has a Vertex Cover of size k ; No, otherwise. A vertex cover is a set of

Midterm Exam
School: Rutgers
Course: Design And Analysis Of Algorithms
CS344. Algorithms and Data Structures MidTerm Exam I (Thursday October 18, 2012. 5.00 PM to 6.20 PM, Total Points: 100) You may consult your single cheat sheet. Any theorem or algorithm presented in class in class can be used. All other theorems or algo

Practice Exam 1
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 1994 Farach CS 344: (Practice) Exam #1 Books and notebooks may be consulted. Any theorem proven in class or algorithm presented in class can be used. Theorems or algorithms that were mentioned but not presented can only be used if you prove them. 1.

Practice Questions
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: Practice Questions FarachColton Due by 5:00pm, on . 1. Suppose I take an array A[1, . . . , n] of integers and create a new array B [1, . . . , n+ 1] as follows: First, B [1, . . . , n] = A[1, . . . , n]. Now, I pick some i without tell

Homework 1
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #1 Math Fundamentals FarachColton Due by 5:00pm, Due: Sept. 13. 1. Prove, using the denitions, that loga x = logb x. loga b Prove that log x x = . y log y 2. Prove by induction on k : (Remember these formulas, they may be used later) (a

Homework 2
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #1 Math Fundamentals FarachColton Due by 5:00pm, Due: Sept. 20. 1. Prove that log(n!) (n log n). (15 points) 2. Let f (n) = 2n , g (n) = 3n . Is f (n) in O(g (n)? Is g (n) in O(f (n)? Prove your answer. (10 points) 3. Let f (n) = n2 , g

Homework 3
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #3 Sorting FarachColton Due by 5:00pm, Sept. 27. 1. The merge algorithm presented in class was not in place. Assume you are given an array A[1], ., A[n] where A[1], ., A[k ] is one sorted list and A[k + 1], ., A[n] is another sorted lis

Homework 4
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #4 Trees and Whatnot FarachColton Due by 5:00pm, Oct. 4. 1. Prove that a forest consisting of k trees with a total of n nodes has n k edges. (20 points) 2. Let G = (V, E, W ) be a weighted graph such that no two dierent edges in E have

Sorting
School: Rutgers
The objective of the sorting algorithm is to rearrange the records so that their keys are ordered according to some welldefined ordering rule. Problem: Given an array of n real number A[1. n]. Objective: Sort the elements of A in ascending order of their

Sets
School: Rutgers
A set is a collection of different things (distinguishable objects or distinct objects) represented as a unit. The objects in a set are called its elements or members. If an object x is a member of a set S, we write x S. On the the hand, if x is not a mem

Graph Algorythms
School: Rutgers
Elementary Graph Algorithms CSE 680 Suggested Reading: Appendix B4, Chapter 22 1 Graphs G(V, E)  V : vertex set; E: edge set. Directed graphs, undirected graphs, weighted graphs. An edge is incident on, incident from, or incident to a vertex.

Approximate
School: Rutgers
An approximate algorithm is a way of dealing with NPcompleteness for optimization problem. This technique does not guarantee the best solution. The goal of an approximation algorithm is to come as close as possible to the optimum value in a reasonable am

Binary Search Tree
School: Rutgers
Binary Search tree is a binary tree in which each internal node x stores an element such that the element stored in the left subtree of x are less than or equal to x and elements stored in the right subtree of x are greater than or equal to x. This is cal

Divide And Conquer
School: Rutgers
Divideandconquer is a topdown technique for designing algorithms that consists of dividing the problem into smaller subproblems hoping that the solutions of the subproblems are easier to find and then composing the partial solutions into the solution o

Dynamic Programming
School: Rutgers
Dynamic programming is a fancy name for using divideandconquer technique with a table. As compared to divideandconquer, dynamic programming is more powerful and subtle design technique. Let me repeat , it is not a specific algorithm, but it is a meta

Dynamic Table
School: Rutgers
If the allocated space for the table is not enough, we must copy the table into larger size table. Similarly, if large number of members erased from the table, it is good idea to reallocate the table with a smaller size. Using amortized analysis we shall

Graph Algorithms
School: Rutgers
Graph Theory is an area of mathematics that deals with following types of problems Connection problems Scheduling problems Transportation problems Network analysis Games and Puzzles. The Graph Theory has important applications in Critical path analysis, S

Greedy Algorithms
School: Rutgers
Greedy algorithms are simple and straightforward. They are shortsighted in their approach in the sense that they take decisions on the basis of information at hand without worrying about the effect these decisions may have in the future. They are easy to

Hash Tables
School: Rutgers
Directaddress table If the keys are drawn from the reasoning small universe U = cfw_0, 1, . . . , m1 of keys, a solution is to use a Table T[0, . m1], indexed by keys. To represent the dynamic set, we use an array, or directaddress table, denoted by T

Inequalities
School: Rutgers
Inequalities The term inequality is applied to any statement involving one of the symbols <, >, ,. Example of inequalities are: i. ii. iii. iv. x1 x + y + 2z > 16 p2 + q2 1/2 a2 + ab > 1 Fundamental Properties of Inequalities 1. If a b and c is any real n

Lec2
School: Rutgers
A vector, u, means a list (or ntuple) of numbers: u = (u1, u2, . . . , un) where ui are called the components of u. If all the ui are zero i.e., ui = 0, then u is called the zero vector. Given vectors u and v are equal i.e., u = v, if they have the same

Homework 5
School: Rutgers
Course: Design And Analysis Of Algorithms
Fall 2012 CS 344: #5 More comparison stu FarachColton Due by 5:00pm, Oct. 11. 1. The mode of an array is the most frequent element of the array. Give an algorithm to nd the mode of an array. Analyze its complexity. As always, the faster the algorithm, th