注意事項:

檔名:例如Unit1a.pdf Unit3c.pdf

  1. Unit 1 Algorithm, Efficiency and Analysis

    1. Compare iterative and recursive approaches except binary search and finding fibonacci numbers. 🍄 1134128, 1134157, 10/13 簡報.
    2. 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 簡報.
  2. Unit 2 Order

    1. 🍄 1096113, 1124303, 10/20 簡報

      Exercise: Order (part 1)

    2. 🍄 1134165, 1134166, 10/20 簡報

      Exercise: Order (part 2)

  3. Unit 3 Divide and Conquer Approach: Merge sort and Quick sort

    1. In class, we introduced Merge sort and Quick sort. Organize other sorting algorithms, including pseudocode, program implementation, and time complexity analysis, etc. 🍄1134101, 1134146
    2. 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
    3. 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
    4. Explain the master theorem for divide-and-conquer recurrences, including its formal statement, proof, and illustrative examples with solutions for each case. 🍄 1134108, 1134145
  4. Unit 4 Divide and Conquer Approach: Strassen's Method

    1. Related topics extending Strassen's method, such as subsequent algorithmic improvements and applications. 🍄 1134103, 1134125
  5. Unit 5

    1. 🍄  (已選)

      Exercise: Heapsort (Unit 05)

    2. Applications of Heap Data Structure. e.g. priority queues 🍄

  6. Unit 6

    1. Additional topics on decision trees. (已選)
    2. 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. (已選)
  7. Unit 7

    1. Introduce algorithms for finding the median中位數, minimum, and maximum values in an array. Include pseudocode and algorithm analysis. (已選)
    2. Implement Counting Sort, Radix Sort, and Bucket Sort in Python and present them in class. Find real-world applications for these algorithms. (已選)
  8. Unit 8

    1. Introduce one problem that can be solved using dynamic programming, including pseudocode, program implementation, and time complexity analysis. (已選)
    2. Introduce one problem that can be solved using dynamic programming, including pseudocode, program implementation, and time complexity analysis.
    3. Implement Chained Matrix Multiplication and Optimal Binary Search Tree in Python and present them in class. (已選)
  9. Unit 9

  10. Unit 10

    1. Introduce one problem that can be solved using a greedy approach, including pseudocode, proof of correctness, program implementation, and time complexity analysis. (已選)
    2. Introduce one problem that can be solved using a greedy approach, including pseudocode, proof of correctness, program implementation, and time complexity analysis. (已選)