Learn how to create better C# programs by using efficient algorithms.
Overview
Syllabus
Introduction
- Improve your C# applications with efficient algorithms
- What is an algorithm?
- How to optimize an algorithm
- Optimize an algorithm in C#
- How to describe the time complexity of an algorithm
- Validate strings in C#
- Normalize strings in C#
- Parse and search strings in C#
- Create algorithm-driven strings in C#
- Challenge: Reverse each word
- Solution: Reverse each word
- Linear search arrays in C#
- Binary search arrays in C#
- Aggregate and filter arrays in C#
- Reverse an array in C#
- Challenge: Rotate an array
- Solution: Rotate an array
- What is a linked list?
- Common linked list operations in C#
- Linked list algorithms
- Challenge: Delete Kth node from the end of the list
- Solution: Delete Kth node from the end of the list
- What is a queue?
- Standard queue operations in C#
- Queue algorithms: Generate binary numbers
- What is a stack?
- Basic stack operations in C#
- Stack algorithms: Theorizing an algorithm
- Stack algorithms: Implementing next greater element
- Stack algorithms: Matching parentheses
- Hash-based structures in C#
- Dictionary and HashSet operations in C#
- Leverage the HashSet type in C# algorithms
- Use the Dictionary type in C# algorithms
- Challenge: Detect a cyclic linked list
- Solution: Cyclic linked list
- What is a tree?
- Create a binary search tree in C#
- What are tree traversals?
- Using recursion to implement tree traversals in C#
- Challenge: Develop a search algorithm
- Solution: Develop a search algorithm
- Continue optimizing algorithms
Taught by
Kathryn Hodge