Class Lectures and Reading Assignments
CS 51510
Algorithms
Fall, 2024

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

The first mid-term exam will be one week from today. Here is a collection of review problems for the exam.

The heap_sort sub-folder of the following zip file contains an implementation of the Heapsort algorithm.

Here are the heapsort notes that we used in class.

Here are the versions of buildMaxHeap() and maxHeapify() that we used in class.

Read pages 18 and 19 about QuickSort in Chapter 14, Sorting and Searching.

The quick_sort sub-folder of the following zip file contains implementations of the QuickSort algorithm.

Here is a list of high quality, free, online textbooks about Data Structures and Algorithms.

The first mid-term exam will be two weeks from today. Here is a collection of review problems for the exam.

For next week, read Sections 8.1, 8.2, 8.3, and 8.4 (pages 161 - 172) about the heapsort algorithm from the course textbook.

Read the Introduction to Part II of the course textbook (pages 156 - 160).

Read Sections 7.1, 7.2, and 7.3 (pages 182 - 192) about the quicksort algorithm from the course textbook.

Today we will look at this Java code that does generic sorting.

Read Section 14.8 (generic sorting) from Chapter 14, Sorting and Searching.

Read the following chapter about generically sorting a list of key-value pairs.

Read the following review of what a Java interface is.

Here is some example Java code that does generic sorting.

No class. Labor day.

For next week, read Sections 3.1 and 3.2 (pages 49 through 62) from the course textbook.

And read Sections 3.1, 3.2, and 3.3 (pages 53 through 62) from Data Structures & Algorithm Analysis.

Read Section 2.2 (analyzing insertion sort) from the course textbook (pages 25 through 33).

Read Section 2.3.2 (analyzing merge sort) from the course textbook (pages 39 through 44).

Read Section 14.5 (analyzing merge sort) from Chapter 14, Sorting and Searching.

Read this one paragraph analysis of merge sort.

For today, read Sections 14.1, 14.2, and 14.3 about the selection sort algorithm from the following chapter.

Read the following chapter about the bubble sort algorithm.

We will continue to discuss the code in the following zip file.

For next week, read Section 2.3 from the course textbook (pages 34 through 39) about the merge sort algorithm. Also read Sections 14.4 and 14.5 about merge sort from Chapter 14, Sorting and Searching.

Read Chapter 1 and Section 2.1 from the course textbook (pages 5 through 25).

We will discuss the code in the following zip file.

Read this introductory chapter about sorting algorithms.