btvn.vn
Tìm kiếm Đăng nhập

Đếm thao tác trong một và hai vòng lặp

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Chọn một thao tác để đếm

Khi phân tích, có thể coi phép cộng hoặc so sánh đơn giản là một **đơn vị thao tác**. Cách đếm này giúp nhìn ra số bước thay đổi ra sao khi kích thước đầu vào `n` tăng. Nó không cho biết chính xác chương trình chạy bao nhiêu giây, vì từng thao tác và môi trường máy có thể khác nhau. Thao tác chi phối số lần thực hiện thường được gọi là **phép toán tích cực**; một chương trình không nhất thiết chỉ có đúng một phép toán như vậy. Với `n` không âm, đoạn sau tăng `c` đúng `n` lần: ```python def dem_mot_vong(n): c = 0 for k in range(n): c += 1 return c ``` Phép cộng `c += 1` được thực hiện `n` lần; khởi tạo và trả kết quả chỉ thêm số thao tác không phụ thuộc `n`.

Hai vòng lồng nhau nhân số lượt

Đặt một vòng `n` lượt vào trong một vòng `n` lượt: ```python def dem_hai_vong(n): c = 0 for i in range(n): for j in range(n): c += 1 return c ``` Mỗi lượt vòng ngoài chạy đủ `n` lượt vòng trong, nên phép cộng xảy ra `n × n = n²` lần. Với `n = 4`, hai hàm trả lần lượt 4 và 16. Chúng **không giải cùng một bài toán**: kết quả đếm cũng khác. Ở đây chúng chỉ minh họa cách số thao tác tăng.

Bài luyện

Với `n = 5`, `dem_hai_vong(n)` thực hiện phép `c += 1` bao nhiêu lần?
Chọn một đáp án

Bài luyện

Vì sao không lấy “mỗi thao tác bằng một đơn vị” làm số giây chạy chính xác?
Chọn một đáp án

Bài luyện

Với hai hàm trong bài, nhận xét nào đúng?
Chọn một đáp án

Đang học