Learn programming for Free and how to develop and write computer programs and IT applications. Get Free knowledge, information, references, and resources about computers now. Many Free training courses,tutorials, books, training guides, tips, articles, and helps are available to you.
Subscribe to our Free semimonthly Newsletter to Get the Latest & Best FREE Computer IT Training! -You'll stay current with all the New Free Computer Training and Education sites we discover - Subscribe now because you'll have access to these great new sites a month before our web site visitors do, and with each issue you'll receive our 2 non-public links containing 97 Pages of Free Training with over 10,000 Free IT training and tutorial resources.
This training is available on our members site only. As a member, all of the training and tutorials are available to you. We will be adding more training materials here in the future. You can join now for only USD $15 total for 2 months, $25.00 for 4 months, $34.00 for 6 months, or $59.00 for 1 year. (Please note the local links to member training content do not work on this page.)
This course teaches the Analysis of the performance of Algorithms. It also discusses programming techniques and data structures used in the writing of effective algorithms. Knowledge of C programming is assumed.
Topics Covered:
Introduction: Analysis of Selection Sort
Introduction: Analysis of Merge Sort
Asymptotic Notation
Asymptotic Notation Continued
Heapsort
Heapsort Continued
Priority Queues (more heaps)
Quicksort
Bounds on Sorting and Linear Time Sorts
Stable Sorts and Radix Sort
Begin Dynamic Programming
More Dynamic Programming
Begin Greedy Algorithms: Huffman's Algorithm
Dÿkstra's Algorithm
Beyond Asymptotic Analysis: Memory Access Time
B-Trees
More B-Trees: Insertion and Splitting
Union/Find
Warshall's Algorithm, Floyd's Algorithm
Large Integer Arithmetic
RSA Public-Key Cryptosystem
Begin Algorithms and Structural Complexity Theory
Continue Algorithms and Structural Complexity Theory
End Algorithms and Structural Complexity Theory
Generating Permutations and Combinations
Exam review with sample questions and solutions
Data Structures
Teaches abstract data structures (stacks, queues, lists, trees). Dynamic memory allocation, pointers, and recursion, sorting, and searching. Some of the material here is repeated from above.
Topics Covered:
Introduction and Big Example
Complexity Analysis
Pointers, Dynamic Allocation, Linked Lists
More Linked Lists, Stacks
Queues
Recursion
Recursion Continued: An Extended Example
Trees, Binary Trees, Binary Search Trees
Binary Trees on Disk (A C Program)
B-Trees
Hashing
Sorting
Heapsort and Quicksort
Data Compression with Huffman Coding
Graphs
More Graphs
Data Structures and Algorithms
This course was prepared for the Programming Languages and System Design course in the BE(Information Technology) course at the University of Western Australia. It is designed to teach you how to program efficiently. It assumes that
you know the basics of programming in C,
can write, debug and run simple programs in C, and
have some simple understanding of object-oriented design.
Introduction
Programming Strategies
2.1 Objects and ADTs
2.1.1 An Example: Collections
2.2 Constructors and destructors
2.3 Data Structure
2.4 Methods
2.5 Pre- and post-conditions
2.6 C conventions
2.7 Error Handling
2.8 Some Programming Language Notes
Data Structures
3.1 Arrays
3.2 Lists
3.3 Stacks
3.3.1 Stack Frames
3.4 Recursion
3.4.1 Recursive Functions
3.4.2 Example: Factorial
Searching
4.1 Sequential Searches
4.2 Binary Search
4.3 Trees
Complexity
5. Complexity (PS)
Queues
6.1 Priority Queues
6.2 Heaps
Sorting
7.1 Bubble
7.2 Heap
7.3 Quick
7.4 Bin
7.5 Radix
Searching Revisited
8.1 Red-Black trees
8.1.1 AVL trees
8.2 General n-ary trees
8.3 Hash Tables
Dynamic Algorithms
9.1 Fibonacci Numbers
9.2 Binomial Coefficients
9.3 Optimal Binary Search Trees
9.4 Matrix Chain Multiplication
9.5 Longest Common Subsequence
9.6 Optimal Triangulation
Graphs
10.1 Minimum Spanning Tree
10.2 Dijkstra's Algorithm
Huffman Encoding
FFT
Hard or Intractable Problems
13.1 Eulerian or Hamiltonian Paths
13.2 Travelling Salesman's Problem
Games
Appendices
ANSI C
Source code listings
Slides from lectures (PowerPoint)
More Algorithm Learning Resources:
Animated Alogorithms - A collection of animated algorithms including: Insertion Sort, QuickSort, Bin Sort, Radix Sort, Priority Queue Sorting, Hash Tables Searching, Optimal Binary Search Tree, Huffman Encoding, Dijkstra's Shortest Path, Minimum Spanning Tree ( MST ).
Algorithms CMSC 251 - A large (97 page) book on the following topics : Course Introduction, Analyzing Algorithms: the 2-D Maxima Problem, Summations and Analyzing Programs with Loops, the 2-D Maxima revisited and Asymptotics, Asymptotics, Divide and Conquer and MergeSort, Recurrences, Medians and Selection, Long Integer Multiplication, Heaps and HeapSort, HeapSort Analysis and Partitioning, QuickSort, Lower Bounds for Sorting, Linear Time Sorting, Introduction to Graphs, Graphs, Graph Representation and BFS, All Pairs Shortest Paths, Floyd Warshall Algorithm, Longest Common Subsequence, Chain Matrix Multiplication, NP Completeness: General Introduction, NP Completeness and Reductions.