O(1):常数阶
> int sum = 0;
> int n = 100;
> sum = n++;
> sum = n++;
> sum = n++;
> Debug.WriteLine(sum);
O(log2n):对数阶
> int sum=0;
> int n = 100;
> while (sum < n)
> {
> sum = sum * 2;
> }
> Debug.WriteLine(sum);
O(n):线性阶
> int sum=0;
> int n = 100;
> for (var i = 0; i < n; i++)
> {
> sum +=i;
> }
> Debug.WriteLine(sum);
O(n2):平方阶
> int sum=0; int n = 100;
> for (var i = 0; i < n; i++) {
> for (var j = 0; j < n; j++){
> sum += i;
> }
> }
> Debug.WriteLine(sum);
O(2^n):指数阶
> public int aFunc(int n) {
> if (n <= 1)
> {
> return 1;
> }
> else
> {
> return aFunc(n - 1) + aFunc(n - 2);
> }
> }
时间复杂度耗时排序:
O(1)< O(log2n) < O(n) < O(n*log2n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
时间复杂度平均耗时:
> int sum=0;int n = 100;
> if (n >= 0) {
> // 第一条路径时间复杂度为 O(n^2)
> for (int i = 0; i < n; i++)
> {
> for (int j = 0; j < n; j++)
> {
> sum += i * j;
> Debug.WriteLine(sum);
> }
> }
> } else {
> // 第二条路径时间复杂度为 O(n)
> for (int j = 0; j < n; j++)
> {
> sum += j;
> Debug.WriteLine(sum);
> }
> }
此时时间复杂度为 MAX(O(n^2)),MIN(O(n)),AVG(O(n ^ 1.3))。