This 3-week program focuses on fundamental and advanced algorithms in C++. It provides daily exercises to strengthen problem-solving skills and code optimization techniques.
- Exercise: Implement a linear search to find an element in an array.
- Objective: Understand basic array searching.
- Exercise: Implement binary search for a sorted array.
- Objective: Learn efficient searching.
- Exercise: Implement the bubble sort algorithm.
- Objective: Understand basic sorting algorithms.
- Exercise: Implement the selection sort algorithm.
- Objective: Compare different sorting methods.
- Exercise: Implement the insertion sort algorithm.
- Objective: Reinforce sorting skills.
- Exercise: Find the maximum and minimum elements in an array with one pass.
- Objective: Optimize array searching.
- Exercise: Review and optimize previous exercises.
- Exercise: Implement the quick sort algorithm.
- Objective: Learn advanced sorting techniques.
- Exercise: Implement the merge sort algorithm.
- Objective: Understand the divide and conquer approach.
- Exercise: Check if an array contains duplicate elements.
- Objective: Handle nested loops.
- Exercise: Reverse a string.
- Objective: Manipulate strings and arrays.
- Exercise: Count vowels and consonants in a string.
- Objective: Use conditions and string manipulation.
- Exercise: Implement the counting sort algorithm.
- Objective: Explore non-comparative sorting.
- Exercise: Reimplement and compare the algorithms learned.
- Exercise: Implement substring search in a string.
- Objective: Work with string searching.
- Exercise: Implement the heap sort algorithm.
- Objective: Understand heap data structures.
- Exercise: Implement BFS for a graph/tree.
- Objective: Introduction to graph traversal.
- Exercise: Implement DFS for a graph/tree.
- Objective: Understand graph traversal techniques.
- Exercise: Implement Dijkstra's algorithm for finding the shortest path.
- Objective: Learn optimal pathfinding.
- Exercise: Implement radix sort.
- Objective: Explore advanced sorting methods.
- Exercise: Review and enhance previous algorithms.
- Objective: Consolidate learning and improve efficiency.