|
| 1 | +# Day 18: Algorithms 🚀 |
| 2 | + |
| 3 | +Welcome to Day 18 of our coding adventure! Today, we're diving deep into algorithms, the heart of computer science. Understanding these fundamental algorithms will significantly enhance your problem-solving skills. Let's sort, search, and optimize our way through the day! |
| 4 | + |
| 5 | +## Tasks/Activities 📝 |
| 6 | + |
| 7 | +### Activity 1: Sorting Algorithms |
| 8 | + |
| 9 | +- [ ] **Task 1:** Implement the **bubble sort** algorithm to sort an array of numbers in ascending order. Log the sorted array. |
| 10 | +- [ ] **Task 2:** Implement the **selection sort** algorithm to sort an array of numbers in ascending order. Log the sorted array. |
| 11 | +- [ ] **Task 3:** Implement the **quicksort** algorithm to sort an array of numbers in ascending order. Log the sorted array. |
| 12 | + |
| 13 | +### Activity 2: Searching Algorithms |
| 14 | + |
| 15 | +- [ ] **Task 4:** Implement the **linear search** algorithm to find a target value in an array. Log the index of the target value. |
| 16 | +- [ ] **Task 5:** Implement the **binary search** algorithm to find a target value in a sorted array. Log the index of the target value. |
| 17 | + |
| 18 | +### Activity 3: String Algorithms |
| 19 | + |
| 20 | +- [ ] **Task 6:** Write a function to **count the occurrences** of each character in a string. Log the character counts. |
| 21 | +- [ ] **Task 7:** Write a function to find the **longest substring without repeating characters** in a string. Log the length of the substring. |
| 22 | + |
| 23 | +### Activity 4: Array Algorithms |
| 24 | + |
| 25 | +- [ ] **Task 8:** Write a function to **rotate an array** by k positions. Log the rotated array. |
| 26 | +- [ ] **Task 9:** Write a function to **merge two sorted arrays** into one sorted array. Log the merged array. |
| 27 | + |
| 28 | +### Activity 5: Dynamic Programming (Optional) |
| 29 | + |
| 30 | +- [ ] **Task 10:** Write a function to solve the **Fibonacci sequence** using dynamic programming. Log the Fibonacci numbers. |
| 31 | +- [ ] **Task 11:** Write a function to solve the **knapsack problem** using dynamic programming. Log the maximum value that can be obtained. |
| 32 | + |
| 33 | +## Feature Request 🎯 |
| 34 | + |
| 35 | +1. **Sorting Algorithm Script:** Write a script that implements **bubble sort**, **selection sort**, and **quicksort** algorithms to sort arrays. |
| 36 | +2. **Searching Algorithm Script:** Create a script that implements **linear search** and **binary search** algorithms to find values in arrays. |
| 37 | +3. **String Algorithm Script:** Write a script that **counts character occurrences** and **finds the longest substring** without repeating characters. |
| 38 | +4. **Array Algorithm Script:** Create a script that **rotates arrays** and **merges sorted arrays**. |
| 39 | +5. **Dynamic Programming Script:** Write a script that solves the **Fibonacci sequence** and **knapsack problem** using dynamic programming (optional). |
| 40 | + |
| 41 | +## Achievement 🏆 |
| 42 | + |
| 43 | +By the end of these activities, students will: |
| 44 | + |
| 45 | +- ✅ Implement and understand **common sorting algorithms**. |
| 46 | +- ✅ Implement and understand **common searching algorithms**. |
| 47 | +- ✅ Solve **string manipulation problems** using algorithms. |
| 48 | +- ✅ Perform **array operations** using algorithms. |
| 49 | +- ✅ Apply **dynamic programming** to solve complex problems (optional). |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +Time to master algorithms and boost your coding prowess! 💪 |
0 commit comments