You are on page 1of 13

1

CSC 3102
Adv Data Structures and
Algorithms Analysis
General Info, Scope,
Textbook, Assessment,
2
Web page:
http://www.csc.lsu.edu/~rahul/3102
Instructor: Rahul Shah
rahul@csc.lsu.edu
TA/Grader : Jace Courville, Sudip Biswas
jcour5@tigers.lsu.edu, sbiswa7@lsu.edu
Office Hours (PFT 3122A)
Wednesday: 10am-12noon
General Information
3
When we solve a problem, we usually need
to handle a problems every day
Transform an input into a desired output
Algorithm: A method of solving a problem,
using a sequence of well-defined steps
Data Structures: Some ways to organize
the data smartly so that an algorithm can
run faster and so that real time queries
can be performed
Algorithms & Data Structures
4
Ex: Given a list of 100 numbers.
Determine if the number 54 is in the list
Algorithm 1: (Linear Scan)
Look at every number in the list
Is this the best we can do ?
Let say, we have few more queries?
How much time do we spend for each query?
Can we do something smarter?

Algorithms & Data Structures
5
Sorted array
Say the list is sorted and can be randomly
accessed
Algorithm 2: (Binary Search)
If the list has 1 element, answer directly
Else, compare the middle number M in the list
Case 1: If equals, answer YES
Case 2: If M is bigger, search left half
Case 3: If M is smaller, search right half
Is this necessarily better than
Algorithm 1?

6
Both algorithms can be extended to solve a
more general problem, for any sorted list
of any length, and for any target number
Question 1:
When the length of the list is VERY long,
which algorithm do you prefer? Why?
Question 2:
What if we need to update the list of
numbers ?
Algorithms & Data Structures
7
What will we study?
Study fundamental data structures, and study
their efficiency in terms of space usage, query
times and update times
How to design an efficient algorithm, with
proper data structures, to solve a problem
How to show that an algorithm is correct
How to analyze the performance of an
algorithm (or a data structure)
Practice on implementing algorithms and data
structures and compare practical
efficiencies
8
Teaching Plan
Part I: Basics
Sorting/Searching, Growth of Function,
Solving Recurrence
Part II: Fundamental Data Structures
Linked List, Queue, Stack (old)
Search Trees (Binary, AVL, 2-3, Red-black),
Heaps, Hash Tables, Tries (Suffix), Graphs
Part III: Graph Algorithms
BFS, DFS, Connected Components,
Shortest Path/Spanning Tree Algorithms
with Priority Queues

9
Teaching Plan

Part IV : Dynamic Programming and
Greedy Algorithms
Part V: Text Processing
String Searching, Text Compression, Search
Engines
Part VI: Advanced Topics
Compressed data structure for text
searching
10
Skills Building .
Abstract thinking in algorithms and
efficiency
Google, DE Shaw, Yahoo, MS
interview questions
IOI/ ACM ICPC : Programming
Contest Questions
Research in Data Structures/Search
engines
11
Textbook & References
Textbook:
Data Structures and Algorithms in C++
(by Goodrich, Tamassia and Mount)
- Same book in Java
References
Introduction to Algorithms (by Cormen et al)
Algorithms in C++, by Sedgewick
MIT Opencourse
12
Assessments
Midterm: 25%
Homeworks(paper): 20%
Programming : 20%
Participation : 10%
Final Exam: 25%*
--------------------------------------------
Total 100%
13
Study Tips
Have a fresh mind in lectures
Dont over-eat
Dont be shy, ask questions
Try your best to do every assignment
Suggestion:
Work in groups to exchange high-level ideas,
but then do it separately in the end
Study textbook, and try the exercises
Most importantly: Have fun!

You might also like