Skip to main content
CSE 331 Algorithms and Data Structures



CSE 331







Notes and homework


Algorithms and Data Structures (Section 001)


Spring 2016

Monday and Wednesday, 10:20-11:40, 223 Natural Resource Bldg

Instructor: Dr.Yanni Sun (email:

Office hours (3134 EB): Wed. 2:30-3:30 PM or by appointment


TA: Saptarshi Mitra Email:

Office hours: Thursday from 2:30 to 4:30 at Instructional Lab (Room 3203) in EB



Welcome to the home page for CSE 331: Algorithms and Data Structures.

In this course, students will survey fundamental data structures and many associated algorithms. Study of classical abstract data types (ADT) will be fairly comprehensive. Emphasis will be placed on matching the appropriate data structures and algorithms to application problems. Analysis of algorithms is crucial to making proper selections, so analysis is important in the course. This course assumes that students are already familiar with advanced programming techniques including the definition of classes, and use of dynamic memory and linked data structures, including lists and trees.

Even though the treatment of algorithms and data structures is mostly conceptual, students are expected to be able to transform these algorithms and data structures into programs with proper approaches of software module development.




l  D2L link is here: You can log in and view your grades.

l  Either the 3rd or 4th edition of the textbook is fine.

l  All the class notes can be downloaded at

l  Homework 1 is due at the beginning of the class on Feb. 1st. No late work will be accepted.

l  TAs office hour is changed to Thursday



Course Handouts and Other Documentation are available at:




Topics and Reference (Third edition) (Fourth Edition) (The textbook cannot replace class notes, which cover the required topics for homework/exams.)

Jan. 11

Course intro; insertion sort. Chapter 7 Chapter 7.2

Jan. 18

Insertion sort continued; introduction to algorithm analysis Chapter 7 Chapter 7.3 to 7.5

Jan. 25

Asymptotic notation; mergesort; quicksort; Chapter 7 Chapter 7

Feb. 1

Quicksort continued; introduction to trees; Chapter 4 Chapter 4

Feb. 8

Binary Search Trees; AVL Trees; Chapter 4 Chapter 4.4

Feb. 15

AVL Trees continued; B-Trees Chapter 4.4 , 4.7

Feb. 22

Exam 1(Feb. 24), Heaps; Chapter 6 Chapter 6

Feb. 29

Heaps, Heapsort; Hashing; Chapter 6; Chapter 5 Chapter 6, Chapter 5

Mar. 7

Spring break

Mar. 14

Hashing; Graphs, DFS, BFS; Chapter 5; Chapter 9 Chapter 5; Chapter 9

Mar. 21

Topological Sort, Dijkstra's algorithm, Chapter 9 Chapter 9.2, 9.3

Mar. 28

Warshall's algorithm, MST

Apr. 4

Exam II (April 6th) MST, Greedy algorithms and dynamic programming; Chapter 10.1 and 10.3 Chapter 10.1 and 10.3

Apr. 11

Algorithm design techniques; Chapter 10.1-10.4 Chapter 10.1-10.4

Apr. 18

Algorithm design techniques Chapter 10.1-10.4

Apr. 25

Complexity theory and course summary; Chapter 10 Chapter 9.7

 Final exam