BigO là gì? Tất tần tật về BigO trong cấu trúc dữ liệu và giải thuật! Kèm ví dụ + code

Chào các bạn, chắc hẳn khi bước vào ngành lập trình này các bạn đều quen với cụm từ BigO. Vậy BigO là gì và nó có ý nghĩa như nào thì mời bạn chiêm nghiệm bài viết của mình ngay sau đây!

BigO là gì?

Big O Notation là một cách toán học mô tả sự phức tạp của thuật toán. Nó thể hiện mức độ tăng thời gian chạy hoặc không gian bộ nhớ cần thiết của thuật toán khi kích thước đầu vào tăng lên. Big O giúp các nhà phát triển hiểu được hiệu suất của thuật toán trong trường hợp xấu nhất, giúp họ so sánh và lựa chọn thuật toán tối ưu nhất cho vấn đề của mình.

Dưới đây là một số ví dụ về Big O Notation trong JavaScript:

O(1) – Thời gian chạy không đổi

Thời gian chạy của thuật toán không thay đổi bất kể kích thước đầu vào. Điều này thường được gặp trong trường hợp truy cập vào một phần tử trong mảng hoặc thêm một phần tử vào cuối một danh sách liên kết.

O(n) – Thời gian chạy tuyến tính

Thời gian chạy tăng tỷ lệ thuận với kích thước đầu vào. Một ví dụ điển hình là duyệt qua tất cả các phần tử trong một mảng.

O(n^2) – Thời gian chạy bậc hai

Thời gian chạy tăng theo bình phương của kích thước đầu vào. Một ví dụ điển hình là thuật toán sắp xếp nổi bọt hoặc duyệt qua mảng hai chiều.

O(log n) – Thời gian chạy logarit

Thời gian chạy tăng logaritm so với kích thước đầu vào. Một ví dụ là thuật toán tìm kiếm nhị phân.

Big O Notation giúp nhà phát triển đánh giá về mặt lý thuyết hiệu suất của thuật toán, từ đó chọn ra giải pháp tối ưu nhất cho vấn đề cần giải quyết.

Ngoài ra anh em có thể tham khảo thêm video của ông dev khá là hay.

Author

trantiendatbk@gmail.com
Nếu bạn thấy bài viết này hữu ích, xin ĐỪNG donate cho mình. Thay vào đó, hãy quyên góp, ủng hộ cho các quỹ từ thiện. Như một lời cảm ơn từ mình, bạn sẽ nhận được một KHOÁ HỌC về bất kỳ chủ đề nào mà bạn thích. Hãy CLICK vào link này https://phaken.com/2024/07/22/thong-tin-cac-quy-tu-thien/

Để lại một bình luận