John Morris,

Electrical and Electronic Engineering,

University of Western Australia

These notes were prepared for the Programming Languages and System Design course in the BE(Information Technology) course at the University of Western Australia. The course covers:

- Algorithm Complexity
- Polynomial and Intractible Algorithms

- Classes of Efficient Algorithms
- Divide and Conquer
- Dynamic
- Greedy

- Searching
- Lists
- Trees
- Binary
- Red-Black
- AVL
- B-trees and other m-way trees
- Optimal Binary Search Trees

- Hash Tables

- Queues
- Heaps and Priority Queues

- Sorting
- Quick
- Heap
- Bin and Radix

- Graphs
- Minimum Spanning Tree
- Dijkstra's Algorithm

- Huffman Encoding
- Fast Fourier Transforms
- Matrix Chain Multiplication
- Intractible Problems
- Alpha-Beta search

Table of Contents |