注意事項:
檔名:例如Unit1a.pdf Unit3c.pdf
-
Unit 1 Algorithm, Efficiency and Analysis
- Compare iterative and recursive approaches except binary search and finding fibonacci numbers.
🍄 1134128, 1134157, 10/13 簡報.
- Other search algorithms, and complexity analysis of binary search, including worst case, average case(for general $p$). Analyze the average case complexity of binary search (for the case $p=1$).
🍄 1134102, 1134126, 10/13 簡報.
-
Unit 2 Order
-
🍄 1096113, 1124303, 10/20 簡報
Exercise: Order (part 1)
-
🍄 1134165, 1134166, 10/20 簡報
Exercise: Order (part 2)
-
Unit 3 Divide and Conquer Approach: Merge sort and Quick sort
- In class, we introduced Merge sort and Quick sort. Organize other sorting algorithms, including pseudocode, program implementation, and time complexity analysis, etc.
🍄1134101, 1134146
- Introduce at least two problems that can be solved using divide-and-conquer methods, including pseudocode, program implementation, and time complexity analysis, etc.
🍄 1104163, 1134114
- Introduce at least two problems that can be solved using divide-and-conquer methods, including pseudocode, program implementation, and time complexity analysis, etc.
🍄 1114156, 1134144
- Explain the master theorem for divide-and-conquer recurrences, including its formal statement, proof, and illustrative examples with solutions for each case.
🍄 1134108, 1134145
-
Unit 4 Divide and Conquer Approach: Strassen's Method
- Related topics extending Strassen's method, such as subsequent algorithmic improvements and applications.
🍄 1134103, 1134125
-
Unit 5
-
🍄 (已選)
Exercise: Heapsort (Unit 05)
-
Applications of Heap Data Structure. e.g. priority queues
🍄
-
Unit 6
- Additional topics on decision trees. (已選)
- Draw the decision trees for insertion sort, merge sort, quick sort, and heap sort when $n=4$. Details and explanations should be provided. Determine whether insertion sort, merge sort, quick sort, and heap sort are stable. (已選)
-
Unit 7
- Introduce algorithms for finding the median中位數, minimum, and maximum values in an array. Include pseudocode and algorithm analysis. (已選)
- Implement Counting Sort, Radix Sort, and Bucket Sort in Python and present them in class. Find real-world applications for these algorithms. (已選)
-
Unit 8
- Introduce one problem that can be solved using dynamic programming, including pseudocode, program implementation, and time complexity analysis. (已選)
- Introduce one problem that can be solved using dynamic programming, including pseudocode, program implementation, and time complexity analysis.
- Implement Chained Matrix Multiplication and Optimal Binary Search Tree in Python and present them in class. (已選)
-
Unit 9
-
Unit 10
- Introduce one problem that can be solved using a greedy approach, including pseudocode, proof of correctness, program implementation, and time complexity analysis. (已選)
- Introduce one problem that can be solved using a greedy approach, including pseudocode, proof of correctness, program implementation, and time complexity analysis. (已選)