Hiểu được độ phức tạp thời gian của thuật toán là thiết yếu cho hiệu suất tối ưu hóa mã. Trong JavaScript, phân tích thời gian chạy của thuật toán phát triển như thế nào với kích thước đầu vào giúp các nhà phát triển đưa ra quyết định sáng suốt về hiệu suất và tính toán.

Thời gian là gì?

Sự phức tạp thời gian đo thời gian một thuật toán để hoàn thành hoàn chỉnh với kích thước đầu vào của nó. nó được thể hiện bằng cách sử dụng ký hiệu O lớn, mà phân loại các thuật toán dựa trên tốc độ tăng trưởng của chúng.

Những bước thực tế để tính độ phức tạp thời gian trong JavaScript

Để phân tích độ phức tạp thời gian của một thuật toán, hãy theo những bước này:

  • Hãy xác định những hoạt động cơ bản trong mã lệnh, chẳng hạn như so sánh hoặc giao phó nhiệm vụ.
  • Đếm bao nhiêu lần các thao tác này thực hiện tương đối với kích thước đầu vào.
  • Xác định thuật ngữ trội nhất ảnh hưởng tăng trưởng khi kích thước đầu vào tăng lên.

Ví dụ: Phân tích Vòng lặp

Hãy xem một vòng lặp đơn giản bằng JavaScript:

Vòng này chạy n lần, do đó độ phức tạp thời gian của nó là O(n). Nếu có vòng lặp tổ, hãy nhân những thứ phức tạp theo đó.

Name

Đây là những sự phức tạp điển hình:

  • O( 1): thời gian hằng số, độc lập kích thước đầu vào.
  • O(log n): Thời gian đăng ký, phổ biến trong thuật toán chia và kết nối.
  • O(n): Thời gian tuyến tính, chẳng hạn như vòng lặp đơn giản.
  • O(n^2): Thời gian quadratic, điển hình trong vòng lặp lồng nhau.
  • O(2^n): Thời gian biểu, thường là trong thuật toán đệ quy.