You are on page 1of 12

CSC 3102

Advanced Data Structures and


Algorithm Analysis

Bijaya Bahadur Karki

Tuesday and Thursday


1:40 PM to 3:00 PM

213 Tureaud Hall

CSC 3102 0.1 B.B. Karki, LSU


Office Hours

 Instructor: Bijaya B. Karki


 12:30 PM to 2:00 PM, Monday and Wednesday
 Or at any time by appointment
 283 Coates Hall
 karki@csc.lsu.edu

 Teaching Assistant: Di Lin


 Any time by appointment
 dlin4@lsu.edu

CSC 3102 0.2 B.B. Karki, LSU


Course Description and Prerequisites

 Catalog Description
 Description and utilization of formal ADT representations,
especially those on lists, sets, and graphs; time and space
analysis of recursive and non-recursive algorithms, including
graph and sorting algorithms; algorithm design techniques.

 Prerequisites
 Credit in CSC 2290 or CSC 1254 or CSC 1351
 Credit or registration in CSC 2259

CSC 3102 0.3 B.B. Karki, LSU


Major Topics

 Algorithm Basics

 Fundamental Data Structures

 Algorithm Design Techniques

CSC 3102 0.4 B.B. Karki, LSU


Algorithm Basics

 Notion of Algorithm

 Fundamentals of algorithmic problem solving


 Sequence of steps

 Important problem types


 Sorting, Searching, String processing, Graph problems, Combinatorial
problems, Geometric problems, Numerical problems

 Analysis of algorithmic efficiency


 Analysis framework
 Asymptotic notations
 Basic efficiency classes

 Non-recursive algorithms

 Recursive algorithms

CSC 3102 0.5 B.B. Karki, LSU


Fundamental Data Structures

 Concept, Structure, Functions, Abstract data type (ADT), Applications

 Linear Lists:
 Linked lists, Queues, Stacks

 Trees:
 Binary search tree, AVL tree, 2-3 tree, B-tree

 Graphs:
 Graph (DFS and BFS) traversals,

 Graph problems: Topological sorting

 Sets:
 Subsets, Union-find operations

CSC 3102 0.6 B.B. Karki, LSU


Algorithm Design Techniques

 Brute force
 Selection sort, Brute-force string matching, Convex hull problem
 Exhaustive search: Traveling salesman, knapsack, and assignment problems

 Divide-and-conquer
 Master theorem
 Mergesort, Quicksort, Quickhull

 Decrease-and-conquer
 Insertion sort
 Permutations: Minimal change approach, Johnson-Trotter algorithm
 Fake-coin problem: Ternary search
 Computing a median

CSC 3102 0.7 B.B. Karki, LSU


Algorithm Design Techniques (Contd.)

 Transform-and-conquer
 Gaussian elimination, Heaps and Heapsort, Problem reduction

 Space-and-time tradeoffs
 Horspool’s algorithm for string matching
 Boyer-Moore algorithm for string matching

 Dynamic programming
 Warshall’s algorithm for transitive closure
 Floyd’s algorithms for all-pairs shortest paths

 Greedy techniques
 Prim’s algorithm for the MST problem
 Kruskal’s algorithm for the MST problem
 Dijkstra’s algorithm for single-source shortest path problem
 Huffman tree and code

 More on Algorithms (one or two classes).


CSC 3102 0.8 B.B. Karki, LSU
Reading Materials & Resources

 Textbooks:
 Required:
Anany Levitin, Introduction to The Design & Analysis of Algorithms, 2nd Ed.
 Recommended:
Richard F. Gilberg and Behrouz A. Forouzan, Data Structures: A Pseudocode
Approach with C
Michael Main, Data Structures and Other Objects using JAVA
Robert Sedgewick, Tim Lindholm, Michael Schidlowsky, Algorithms in Java,
Third Edition, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching

 Resources:
 Course-related materials posted regularly online:
www.csc.lsu.edu/~karki
moodle.lsu.edu
 Server “classes” for working in programming assignments
classes.csc.lsu.edu
CSC 3102 0.9 B.B. Karki, LSU
Grading Policy
 Grading Scale:
 A = 90% or more  D = 50% to 64%
 B = 78% to 89%  F = below 50%
 C = 65% to 77%

 Grading Items:
 Quiz (10%) - Four to six including some pop quizzes
 Homework assignment (10%)
 Four assignments, Assigned on regular basis
 Also helpful in preparation for the quiz and exam.
 Programming assignment (20%)
 Four assignments, Assigned on regular basis
 Implementation and exploration of some data structures and algorithms
with C/C++, JAVA
 Mid-term exam (30%)
 Final exam (30%)
 Exams are closed book
 Late submission of assignment will be penalized
 Academic dishonesty will be treated seriously.
CSC 3102 0.10 B.B. Karki, LSU
Sample Questions: Type 1

Answer “True” or “False” to the following statements:

 The quadratic basic efficiency class has greater order of growth than the factorial
efficiency class.
 Big O is used to represent an upper bound on order of growth of a given function.

 Stack operates in the LIFO fashion.

 The basic operation in computing n! is the addition.

 The partition-based algorithm to find the median of a list of integers adopts a


decrease-and-conquer approach.

 Exhaustive search is a brute-force approach to combinatorial problems.

 Any weighted connected graph with distinct weights has exactly one minimum
spanning tree.

 It is always true that the bottom-up and top-down algorithms yield the same heap
for the same input.
CSC 3102 0.11 B.B. Karki, LSU
Sample Questions: Type 2

 Compare the orders of growth of nlogn and n3/2. Show your work.

 Construct a 2-3 tree for the list 9, 5, 8, 3, 2, 4 and 7 by successive insertions.

 Generate the bad-symbol and good-suffix tables for a 7-bit long pattern 1000000.

 Solve the following recurrence relation: x(n) = 3x(n-1) for n > 1, x(1) = 4.

 Construct a heap for the list 1, 8, 6, 5, 3, 7, 4 using either the bottom-up algorithm or
the top-down algorithm.

 Use Master Theorem to find the order of growth of the following recurrence:
T(n) = 4T(n/2) + n3 for n > 0, T(1) = 1.

 Apply Kruskal’s algorithm to find a minimum


spanning tree of the following graph. Calculate
the total weight of the tree. Can this graph have
more than one MST? Justify your answer.

CSC 3102 0.12 B.B. Karki, LSU

You might also like