# 算法复杂度

# 刷题网站 Leecode

# 时间复杂度

  • 一个函数,用大 O 表示,比如 O(1), O(㏒2(n)), O(√n), O(n㏒2(n)), O(n²), O(2^n), O(n!)...
  • 定性描述该算法的运行时间 时间复杂度图表
// 复杂度为 O(1)
let i = 0;
i += 1;
// 时间复杂度为 O(n)
for (let i = 0; i < n; i += 1) {
  console.log(i);
}
// 时间复杂度为 O(1)+O(n)
let i = 0;
i += 1;
for (let j = 0; j < n; j += 1) {
  console.log(i);
}
// 时间复杂度为 O(n)*O(n) = O(n^2)
for (let i = 0; i < n; i += 1) {
  for (let j = 0; j < n; j += 1) {
    console.log(i);
  }
}
// 时间复杂度为O(㏒N)
let i = 1;
while (i < n) {
  console.log(i);
  i *= 2;
}