Bài 25 Thực hành xác định độ phức tạp thời gian thuật toán
Lớp 11Tin Học16 câu hỏiBài tập
Phần 1
Câu 1
(Câu 25.1 trang 77 SBT Tin học 11) Cho hàm thời gian
. Độ phức tạp thời gian của hàm là gì?
A
.
B
.
C
.
D
.
Câu 2
(Câu 25.1 trang 77 SBT Tin học 11) Cho hàm thời gian
. Độ phức tạp thời gian của hàm là gì?
A
.
B
.
C
.
D
.
Câu 3
(Câu 25.1 trang 77 SBT Tin học 11) Cho hàm thời gian
. Độ phức tạp thời gian của hàm là gì?
A
.
B
.
C
.
D
.
Câu 4
(Câu 25.1 trang 77 SBT Tin học 11) Cho hàm thời gian
. Độ phức tạp thời gian của hàm là gì?
A
.
B
.
C
.
D
.
Câu 5
(Câu 25.2 trang 77 SBT Tin học 11) Thuật toán sau thực hiện công việc gì? def findMax(A): maxVal = A[0]; for i in range(1, len(A)): if A[i] > maxVal: maxVal = A[i]; return maxVal.
ATìm phần tử lớn nhất của mảng A.
BTìm phần tử nhỏ nhất của mảng A.
CSắp xếp mảng A theo thứ tự tăng dần.
DĐếm số phần tử của mảng A.
Câu 6
(Câu 25.3 trang 78 SBT Tin học 11) Hàm revFunction(S) khởi tạo revs = "", i = len(S) - 1, sau đó lặp và ghép S[i] vào revs rồi giảm i. Hàm này thực hiện công việc gì?
ATrả về xâu đảo ngược của xâu đầu vào.
BĐếm số kí tự của xâu đầu vào.
CTìm kí tự lớn nhất trong xâu đầu vào.
DXoá toàn bộ kí tự trong xâu đầu vào.
Câu 7
(Câu 25.4 trang 78 SBT Tin học 11) Với thuật toán sắp xếp chèn trong PDF, thời gian chạy tối đa được đánh giá là
. Độ phức tạp thời gian của thuật toán là gì?
A
.
B
.
C
.
D
.
Câu 8
(Câu 25.5 trang 78 SBT Tin học 11) Hàm exaFunction(n) có ba vòng lặp lồng nhau, trong đó i chạy từ 1 đến n, j chạy từ 1 đến i, k chạy từ j đến i + j. Độ phức tạp thời gian của hàm là gì?
A
.
B
.
C
.
D
.
Phần 2
Câu 1
(Câu 25.2 trang 77 SBT Tin học 11) Phân tích hàm findMax(A) tìm phần tử lớn nhất của mảng A.
a)Hàm khởi tạo maxVal = A[0] để lưu giá trị lớn nhất tạm thời.
b)Vòng lặp duyệt các phần tử của A từ chỉ số 1 đến len(A) - 1.
c)Nếu A[i] > maxVal thì hàm cập nhật maxVal = A[i].
d)Thời gian chạy của hàm là
vì có hai vòng lặp lồng nhau.
Câu 2
(Câu 25.3 trang 78 SBT Tin học 11) Phân tích hàm đảo ngược xâu revFunction(S).
a)Hàm khởi tạo revs là xâu rỗng.
b)Biến i ban đầu được gán bằng len(S) - 1.
c)Vòng lặp while thực hiện n lần nếu xâu S có n kí tự.
d)Độ phức tạp thời gian của hàm là
vì chỉ có một lệnh return.
Câu 3
(Câu 25.4 trang 78 SBT Tin học 11) Phân tích thuật toán sắp xếp chèn trong PDF.
a)Dòng n = len(A) cần một đơn vị thời gian.
b)Vòng lặp for chạy với i từ 1 đến n - 1 nên có n - 1 bước lặp.
c)Trong trường hợp xấu nhất, vòng lặp while có thể chạy tối đa i lần ở bước lặp thứ i.
d)Thời gian chạy tối đa của thuật toán là
.
Câu 4
(Câu 25.4 trang 78 SBT Tin học 11) Xét công thức thời gian chạy tối đa của thuật toán sắp xếp chèn trong PDF.
a)Công thức được rút gọn thành
.
b)Thành phần bậc cao nhất của
là
.
c)Khi đánh giá theo kí hiệu O-lớn, các hạng tử bậc thấp và hệ số hằng không làm thay đổi bậc độ phức tạp.
d)Vì
nên độ phức tạp thời gian là
.
Câu 5
(Câu 25.5 trang 78 SBT Tin học 11) Phân tích hàm exaFunction(n) trong PDF.
a)Lệnh gán r = 0 cần một đơn vị thời gian.
b)Vòng lặp ngoài với biến i chạy từ 1 đến n nên có n bước lặp.
c)Với mỗi i, vòng lặp j chạy từ 1 đến i.
d)Hàm chỉ có một vòng lặp nên thời gian chạy là
.
Câu 6
(Câu 25.5 trang 78 SBT Tin học 11) Xét độ phức tạp của hàm exaFunction(n).
a)Hàm có các vòng lặp lồng nhau.
b)Số lần thực hiện lệnh r = r + 1 phụ thuộc vào n.
c)Thành phần tăng nhanh nhất của thời gian chạy có bậc ba theo n.
d)Độ phức tạp thời gian của hàm là
.
Câu 7
(Câu 25.6 trang 78 SBT Tin học 11) Nếu
thì có suy ra được
hay không?
a)Không thể suy ra trong mọi trường hợp.
b)Có thể lấy ví dụ
,
thì
.
c)Với
,
, chiều ngược lại
là không đúng.
d)Nếu
thì chắc chắn
.
Câu 8
(Câu 25.7 trang 78 SBT Tin học 11) Giả sử
, với
. Xét độ phức tạp của hàm đa thức này.
a)Hạng tử có bậc cao nhất là
.
b)Khi n đủ lớn, hạng tử bậc cao nhất quyết định tốc độ tăng của đa thức.
c)Theo quy tắc lấy thành phần tăng nhanh nhất,
.
d)Với mọi đa thức bậc k, ta luôn có
.