Wiki › Độ phức tạp

Độ phức tạp

huunguyen huunguyen Updated Tháng sáu 1, 2026 Đọc 1 phút 2 lượt xem

Trước khi viết code, người làm competitive programming luôn tự hỏi: "Thuật toán này chạy có kịp giới hạn thời gian không?". Phân tích độ phức tạp trả lời câu hỏi đó — ước lượng thời gian chạy và bộ nhớ theo kích thước đầu vào N, giúp bạn chọn đúng thuật toán trước khi mất công cài đặt.

Các trang trong mục này

Đọc theo thứ tự sau:

  1. Độ phức tạp thời gian (Big-O) — ký hiệu Big-O và cách ước lượng số phép tính khi N tăng. Nền tảng quan trọng nhất.
  2. Độ phức tạp không gian — ước lượng bộ nhớ theo N, tránh vượt Memory Limit.
  3. Ước lượng giới hạn bài toán — nhìn vào ràng buộc (N≤105, N≤20...) để đoán ngay độ phức tạp cần thiết. Kỹ năng "đọc đề ra hướng giải".

Mẹo nhanh

Với giới hạn ~1 giây, máy chấm xử lý được khoảng 108 phép tính đơn giản. Đối chiếu con số này với N để loại nhanh các hướng quá chậm — chi tiết trong trang Ước lượng giới hạn bài toán.

Trang này có hữu ích không? Đăng nhập để trả lời

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0