当前课程知识点:算法设计与分析 > 2 Basics of Algorithm Analysis > 2.2 Asymptotic Order of Growth > Asymptotic Order of Growth
我们引进一些关于多项式阶数关系的符号
如果存在常数 c>0 和 n_0≥0
使得对于所有的 n ≥ n_0 都有T(n)≤ cf(n)
那么称T(n)是O(f(n))的
f(n)是T(n)的上界
如果存在常数 c>0 和 n_0≥0
使得 对于所有的 n ≥ n_0 , T(n)≥ cf(n)
那么称T(n)是Ω(f(n))的
f(n)是T(n)的下界
如果T(n)是O(f(n))的 又是Ω(f(n))的
那么T(n)是θ(f(n))的
f(n)是T(n)的紧界
例如 T(n) = 32n^2 + 17n + 32
T(n) 是 O(n^2), O(n^3), Ω(n^2), Ω(n^3), 以及θ(n^2)的
但T(n) 不是O(n), Ω(n^3), θ(n), 或θ(n^3)的
O(f(n))是一个函数的集合
但通常习惯上我们说 T(n) = O(f(n))
而不是 T(n)∈O(f(n))
对于上面介绍的符号
容易验证具有下面的性质
传递性
如果f = O(g) 且 g = O(h)
则 f = O(h)
如果f = Ω(g) 且 g = Ω(h)
则 f = Ω(h)
如果f = θ(g) 且 g = θ(h)
则 f = θ(h)
可加性
如果f = O(h) 且 g = O(h)
则 f+g = O(h)
如果f = Ω(h) 且 g = Ω(h)
则 f+g = Ω(h)
如果f = θ(h) 且 g = θ(h)
则 f+g = θ(h)
下面 我们给出一些常见函数的界
多项式 a_0 + a_1n + … + a_dn^d 是 θ(n^d) 的
这里 a_d > 0
我们说一个算法是多项式时间的
如果存在常数d
对于任意输入规模n
运行时间是O(n^d)
对数
对于任意的常数 a,b >1
O(log_a n) = O(log_b n)
对于任意的 x>0, log n = O(n^x)
即对数函数比任何的多项式函数都增涨的慢
指数
对于任意的 r>0 和 任意的 d>0
n^d = O(r^n)
任意的指数函数比任意的多项式函数
增长得快
-1.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 Asymptotic Order of Growth
-2.3 A Survey of Common Running Times
--A Survey of Common Running Times
-Homework2
-Lecture note 2
--Lecture note 2 Basics of Algorithm Analysis
-3.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 Testing Bipartiteness
-3.4 Connectivity in Directed Graphs
--Connectivity in Directed Graphs
-3.5 DAG and Topological Ordering
--DAG and Topological Ordering
-Homework3
-Lecture note 3
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 Polynomial-Time Reductions
-8.2 Basic Reduction Strategies I
--Basic Reduction Strategies I
-8.3 Basic Reduction Strategies II
--Basic Reduction Strategies II
-8.4 Definition of NP
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 Numerical Problems
-8.9 co-NP and the Asymmetry of NP
--co-NP and the Asymmetry of NP
-Homework8
-Lecture note 8
--Lecture note 8 NP and Computational Intractability
-9.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam