Cách giảm thời gian chạy chương trình trong C

Trong quá trình học lập trình, bạn đã từng nghe qua về thuật ngữ "Time Limit Exceeded" chưa, hay đã có lúc nào bạn chạy một thuật toán mà chờ mãi vẫn không có kết quả trả về. Hôm nay mình sẽ giúp các bạn hiểu và khắc phục lỗi này nhé

1. Time Limit Exceeded là gì?

Time limit exceeded [TLE] có nghĩa là chạy quá giới hạn thời gian cho phép. Vậy tạo sao lại phải có giới hạn thời gian của thuật toán, đó là vì máy tính chỉ thực hiện được một lượng phép tính trong thời gian nhất định, nếu code của bạn yêu cầu máy tính phải thực hiện một số lệnh quá lớn thì máy tính sẽ chạy rất lâu hoặc có thể chạy không bao giờ dừng. Để tránh điều đó xảy ra, thì trong các của thi hoặc một số trang web với tính năng chấm bài tự động sẽ phải đưa ra giới hạn thời gian để thực hiện bài toán đó. Nếu khi thuật toán của bạn chạy quá giới hạn ở một test case nào đó, thì hệ thống sẽ xem như bạn đã sai ở test case đó.

2. Tại sao lại xảy ra lỗiTime Limit Exceeded.

2.1 TLE do vòng lặp chạy vô tận.

Trường hợp này thường xảy ra thường khi coder chưa thực sự cẩn thận, họ không lường trước được những trường hợp mà vòng lặp [while, for, ...] không thể kết thúc.

Ví dụ với chương trình sau đây:

#include using namespace std; int main[]{ int n; n = 10; while [n > 0]{ cout

Chủ Đề