# Data Structures and Algorithms (C# code in GitHub)

Search, Sort, Binary Heaps, Binary Trees, Nary Trees (paired with C# implementations in an open source GitHub repo)

This course teaches a comprehensive list of basic and advanced data structures and algorithms, an essential topic of coding interviews at tech companies.

What you’ll learn

• Sort algorithms (bubble, insertion, selection, quick, merge, heap, radix), Search algorithms (linear, hash-table, binary, ternary, jump, exponential, fibonacci), Binary Search Trees, AVL trees, Red-Black trees, B-Trees, B+Trees, Min Binary Heap, Max Binary Heap, Min-Max Binary Heap.

Course Content

• Introduction –> 1 lecture • 2min.
• Search Algorithms –> 9 lectures • 1hr 6min.
• Sort Algorithms –> 8 lectures • 1hr 57min.
• Binary Heaps –> 13 lectures • 1hr 24min.
• Binary Search Trees –> 3 lectures • 13min.
• AVL Trees –> 3 lectures • 17min.
• Red Black Binary Trees –> 3 lectures • 19min.
• B-Trees –> 3 lectures • 32min.
• B(+) Trees –> 3 lectures • 44min.

Requirements

This course teaches a comprehensive list of basic and advanced data structures and algorithms, an essential topic of coding interviews at tech companies.

The course is paired with a C# GitHub open source project (username: PiJei, repository name: AlgorithmsAndDataStructures) where each algorithm is tagged with its space and time complexities (Big O), and tested for correctness with the exact same examples used in this course.

If you are a developer or a graduate student who is preparing for coding interviews at large tech firms as Google, Amazon, Facebook, Apple, Microsoft, or smaller high tech companies, you have landed in the right place. By attending this course you will learn the essential and complex data structures and algorithms, once and for all.

Some algorithms are taught over a medium size example such that the algorithm repeats itself several times until it is no longer complex and rather easily understood.

You are expected to maintain the knowledge gained via this course for a very long period of time. This is because this course makes heavy usage of animations , examples, and repetitions, which are the keys for deeply learning new topics.

The course has 45 lectures (~ 400 minutes) covering the following topics:

Search Algorithms:

1. Linear Search
2. Hash-Table Search
3. Jump Search
4. Exponential Search
5. Fibonacci Search
6. Binary Search
7. Ternary Search
8. Interpolation Search

Sort Algorithms:

1. Bubble Sort
2. Insertion Sort
3. Selection Sort
4. Quick Sort
5. Merge Sort
7. Heap Sort

Binary Heaps:

1. Min Binary Heap
2. Max Binary Heap
3. Min-Max Binary HeapWith these operations:
1. Build
2. Insert
3. Delete

Binary Trees:

1. Binary Search Tree
2. AVL Tree
3. RedBlack TreeWith these operations:
1. Insert
2. Delete

Nary Trees:

1. B Tree
2. B+ TreeWith these operations:a. Insert

b. Delete

Get Tutorial