# Programming Foundations: Algorithms

Algorithms are the universal building blocks of programming. They power the software you use every day, whether it's a spreadsheet, a social network, or a driving assistant. Algorithms offer a way to think about programming challenges in plain English, before they are translated into a specific language like C# or JavaScript. In this course, author and developer Joe Marini explains some of the most popular and useful algorithms for searching and sorting information, working with techniques like recursion, and understanding common data structures. He also discusses the performance implications of different algorithms and how to evaluate the performance of a given algorithm. Each algorithm is shown in practice in Python, but the lessons can be applied to any programming language.

Topics include:

- Measuring algorithm performance
- Working with data structures such as arrays, stacks, and queues
- Looping and recursion
- Sorting data
- Searching data
- Filtering and value counting with hash tables

## 课程信息

- 英文名称：Programming Foundations: Algorithms
- 时长：1小时45分
- 字幕：英语

## 课程目录

- Algorithms power the world
- What you should know
- What are algorithms?
- Common algorithms in programming
- Measuring algorithm performance
- Introduction to data structures
- Arrays
- Linked lists
- Linked lists walkthrough
- Stacks and queues
- Stacks and queues walkthrough
- Hash tables
- Understanding recursion
- Simple recursion example
- Power and factorial
- Overview of sorting
- The bubble sort
- The merge sort
- Implement the merge sort
- The quicksort
- Implement the quicksort
- Unordered list search
- Ordered list search
- Determine if a list is sorted
- Unique filtering with hash table
- Value counting with hash table
- Find max value recursively
- Next steps