Algorithms Course 1 Algorithms Efficiency Analysis and Order
- Slides: 49
演算法課程 (Algorithms) Course 1 演算法: 效率、分析與量級 Algorithms: Efficiency, Analysis, and Order
2 ▓ Outlines u 本章重點 n Algorithm ¡ ¡ n n The Importance of Developing Efficient Algorithms Analysis of Algorithms ¡ ¡ n Space complexity Time complexity Asymptotic Notation (漸近式表示) ¡ ¡ n Def. 與5個性質 Pseudocode Order , , , o, Using a Limit to Determine Order
5 Pseudocode (虛擬碼) Note: One of the most common tools for defining algorithms is pseudocode, which is part English, part Structured Code.
6 Example of Pseudocode u 問題1: 搜尋問題 u 範例:
10 n 兩個演算法所安裝之系統: ¡ ¡ Quick Sort: IBM PC/XT (1983年�品,以 Intel 8088 CPU為核心 PC/XT ) Insertion Sort: VAX 8800 (DEC超級迷你電腦)
15 Worst-case time complexity analysis u 例:循序搜尋法 (Sequential Search) n 假設一定會搜尋到所要求的item
16 Best-case time complexity analysis u 假設一定會搜尋到所要求的item
17 Average-case time complexity analysis u 假設一定會搜尋到所要求的item
22 Figure 1. 3: • Growth rates of some common complexity functions
25 以嚴謹的方式介紹Order u 共有五種漸近式表示方法: Big-O (O) n Omega ( ) n Theta ( ) n Small-O (o) n Small-Omega ( ) n
28 Omega ( ) u Lower bound of f(n). Lower bound u Definition: n f(n) = (g(n)) if and only if 存在兩正數c和no, 使得f(n) ≥ c g(n), for all n ≥ no.
30 Theta ( ) u 較 O 與 精確. u Definition: f(n) = (g(n)) if and only if 存在三正數c 1, c 2和no, 使得 c 1 g(n) ≤ f(n) ≤ c 2 g(n), for all n ≥ no. n
32 Big-O, Omega與Theta的關係 u 以f(n) = 3 n+2 與 f(n) = 5 n 2+3 n+2為例: n 3 n+2: n n 2 n 3 2 n n 4 Omega Theta Big-O n n 1 5 n 2+3 n+2: n 3 2 n Big-O n 4 n 5 Theta n 2 Omega n 2 n 1
33 Small-O (o) u Definition: n f(n) = o(g(n)) if and only if 對任何正數c,會存在一個正 數no, 使得f(n) < c g(n), for all n ≥ no. u 與Big-O的比較: n n f(n) = O(g(n)) if and only if 存在兩正數c和no, 使得f(n) ≤ c g(n), for all n ≥ no. 例如: ¡ ¡ 2 n = o(n 2) 2 n 2 ≠ o(n 2),但是 2 n 2 = O(n 2)。
34 Small-Omega ( ) u Definition: n f(n) = (g(n)) if and only if對任何正數c,會存在一個正 數no, 使得f(n) > c g(n), for all n ≥ no. u 與Omega的比較: n n f(n) = (g(n)) if and only if 存在兩正數c和no, 使得f(n) ≥ c g(n), for all n ≥ no. 例如: ¡ ¡ 5 n 2+3 n+2 = (n) 5 n 2+3 n+2 ≠ (n 2),但是 5 n 2+3 n+2 = (n 2)
35 太奇怪而無法比較的函數 (如: 週期函數) Small-O Big-O Theta Omega Small-Omega
37 u 邏必達法則 (L’ Hospital Rule)
38 Ex: Determine if f(n) = O 1. f(n) = log 54 n, g(n) = log 45 n Sol: (g(n)) or neither
39 2. f(n) = 1. 10. 1 n, g(n) = n 3 Sol:
40 3. f(n) = n cot(n), g(n) = n tan(n) Sol:
42 � 課後練習� u 課文內容: n Example 1. 7, Example 1. 9, Example 1. 10, Example 1. 11 Example 1. 12, Example 1. 13, Example 1. 15, Example 1. 17, Example 1. 18, Example 1. 19, Example 1. 24, Example 1. 25, Example 1. 26, Example 1. 27, Example 1. 28. u 習題: n n 15, 16, 17, 18 (上學期資結Ch. 1有教), 24 21 請自行參考洪捷p. 1 -10定理3及例題7~10 u 洪捷演算法Ch. 1: n n 例 1~6 精選範例 1, 2
45 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ log n = log (log n) logkn = (log n)k a = blogba logcab = logca+ logcb Logca/b = logca- logcb logban = n logba = logca/ logcb logba = 1/ logab logb(1/a) = logba-1 = -logba a logbc= c logba
48 補 3: 補充考題 u Ex 1: Show the following equality is incorrect (91交大) n 2/log n = (n 2) Sol 1: (以極限來做)
- Productive inefficiency and allocative inefficiency
- Productively efficient vs allocatively efficient
- Allocative efficiency vs productive efficiency
- Efficiency of sorting algorithms
- Efficiency of sorting algorithms
- Algorithm efficiency
- Via optica
- Course title and course number
- 1001 design
- Association analysis: basic concepts and algorithms
- Cluster analysis basic concepts and algorithms
- Probabilistic analysis and randomized algorithms
- Design and analysis of algorithms introduction
- Cluster analysis basic concepts and algorithms
- Cjih
- Cluster analysis basic concepts and algorithms
- Binary search in design and analysis of algorithms
- Introduction to the design and analysis of algorithms
- Design and analysis of algorithms
- Design and analysis of algorithms
- Cluster analysis basic concepts and algorithms
- Design and analysis of algorithms
- T junction english bond
- Course interne moyenne externe
- Theoretical analysis of time efficiency
- Eight generic channel flows
- Mathematical analysis of non-recursive algorithms
- Basic efficiency classes
- An introduction to the analysis of algorithms
- Analysis of algorithms
- Input output algorithm
- Algorithm analysis examples
- Analysis of algorithms
- Analysis of algorithms lecture notes
- Goals of analysis of algorithms
- Competitive analysis algorithms
- Simple sentence with inverted order
- Difference between zero and first order kinetics
- Zero order elimination drugs
- Second order change
- Law is order and good law is good order
- First order cybernetics and second order cybernetics
- Investment analysis and portfolio management course
- Buyer seller dyad
- Order properties
- In order issue in order completion example
- Superscalar architecture diagram
- Arbol in order post order
- Memory forensics training
- Gaa performance analysis course