Font size
WorksheetsPhân tích thiết kế thuật toán
Total questions: 101
Worksheet time: 51mins
Tìm thời gian chậm nhất. Chọn một đáp án:
O(n)
O(n2)
O(n!)
O(2n)
Để đơn giản trong đánh giá, yếu tố thời gian khi xác định hiệu quả của thuật toán thường được đo bằng. Chọn một đáp án:
Đếm micro giây
Đếm số các câu lệnh chính
Đếm chính xác số câu lệnh
Đếm số kilobyte của thuật toán
Với đoạn mã giả dưới đây, hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp chữ O lớn trong trường hợp xấu nhất:
O(n)
O(2)
O(n-2)
O(n2)
Cái nào sau đây không phải là O(n2) ? Chọn một đáp án:
1510⋅n+12099
n3/sqrt(n)
(220)⋅n
n1.98
Tính độ phức tạp của giải thuật sau fun()?
Θ(n)
Θ(n2)
Θ(n2log(n))
Θ(n log(n))
Với đoạn chương trình dưới đây hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp chữ O lớn trong trường hợp xấu nhất. Chú ý: (logn) = Log cơ số 2 của n.
O(1)
O(n)
O(log(n))
O(n log(n))
Chúng ta nói rằng thuật toán X hiệu quả hơn về mặt độ phức tạp thuật toán với thuật toán Y? Chọn một đáp án:
X là lựa chọn tốt hơn cho mọi đầu vào (inputs)
X là lựa chọn tốt hơn cho mọi đầu vào (inputs) trừ một số các đầu vào kích cỡ nhỏ
X là lựa chọn tốt hơn cho mọi đầu vào (inputs) trừ một số các đầu vào kích cỡ lớn
Y là sự lựa chọn tốt hơn cho đầu vào cỡ nhỏ
T(n) = 2T(n-1) + 17. Khẳng định nào sau đây đúng? Chọn một đáp án:
Θ(n2)
Θ(n log(n))
Θ(2n)
Θ(n)
Kết quả bằng bao nhiêu khi n = 4.
8
9
10
11
Với đoạn mã giả dưới đây hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp chữ O lớn trong trường hợp xấu nhất:
O(n)
O(log N)
O(n log N)
O(n2)
Kết quả bằng bao nhiêu khi n = 4
110
120
130
140
Thời gian chạy trường hợp xấu nhất của mã giả sau là gì?
O(2)
O(n-2)
O(n)
O(n2)
Hệ thức truy hồi xác định thời gian tối ưu của bài toán Tháp Hà Nội với n đĩa là. Chọn một đáp án:
T(n) = 2T(n-2) + 2
T(n) = 2T(n-1) + n
T(n) = 2T(n/2) + 1
T(n) = 2T(n-1) + 1
Điều kiện để áp dụng được thuật toán tìm kiếm nhị phân là. Chọn một đáp án:
Danh sách các phần tử phải được sắp xếp
Danh sách các phần tử không cần phải sắp xếp
Danh sách các phần tử phải được sắp xếp tăng dần
Danh sách các phần tử phải được sắp xếp giảm dần
Chọn chốt ngẫu nhiên trong thuật toán QuickSort là. Chọn một đáp án:
Phần tử bên trái nhất được chọn làm chốt
Phần tử bên phải nhất được chọn làm chốt
Bất kỳ phần tử nào trong mảng cũng được chọn làm chốt
Phần tử có giá trị trung bình trong mảng được chọn làm chốt
Với công thức đệ quy f(n) = 4 f(n/2) + 1, thuật toán chia để trị sẽ chia bài toán ban đầu thành bao nhiêu bài toán con và kích thước của các bài toán con đó sẽ là bao nhiêu? Chọn một đáp án:
4 bài toán con, mỗi bài toán kích thước là 2
4 bài toán con, mỗi bài toán kích thước là n/2
2 bài toán con, mỗi bài toán kích thước là 4
2 bài toán con, mỗi bài toán kích thước là n/4
Điều nào sau đây nói về tìm kiếm nhị phân? Chọn một đáp án:
So sánh 2 giá trị đầu tiên và đổi chỗ
Mỗi phần tử được kiểm tra khi sắp xếp
Chia danh sách thành 2 phần và so sánh
So sánh lần lượt các phần tử trong danh sách
Phương pháp nào sau đây là hiệu quả nhất để chọn phần tử chốt trong thuật toán QuickSort? Chọn một:
Phần tử đầu tiên
Phần tử cuối cùng
Phần tử có giá trị trung bình của phần tử đầu, giữa và cuối
Phần tử ngẫu nhiên
Tìm phần tử chốt nào để thuật toán QuickSort hiệu quả nhất cho mảng sau: 8, 1, 4, 9, 6, 3, 5, 2, 7, 0 Chọn một:
8
7
9
6
Thời gian chạy của Quicksort phụ thuộc vào việc lựa chọn _______. Chọn một:
Kích thước của mảng
Phần tử chốt
Giá trị của các phần tử
Không xác định
Độ phức tạp thời gian trung bình của tìm kiếm nhị phân sử dụng đệ quy là bao nhiêu? Chọn một:
O(nlogn)
O(logn)
O(n)
O(n2)
Chọn lệnh gọi đệ quy thích hợp cho QuickSort. (Arr là mảng, low là chỉ số bắt đầu và high là chỉ số kết thúc của mảng, hàm partition)
Thiết kế giải thuật chia để trị cho bài toán: Viết chương trình tính biểu thức S=21+41+⋯+n1 với n≥2 và n là số chẵn. Ta có, công thức đệ quy sau:
S(n)={21neˆˊu n=2 S(n−1)+n1neˆˊu n>2
S(n)={21neˆˊu n=2 S(n−2)+n1neˆˊu n>2
S(n)={21neˆˊu n=2 S(n+1)+n1neˆˊu n>2
S(n)={21neˆˊu n=2 S(n+2)+n1neˆˊu n>2
Điều nào sau đây là đặc điểm của thuật toán quy hoạch động? Chọn một:
Cấu trúc con tối ưu
Các bài toán con lồng nhau
Chiến lược tham lam
Cả cấu trúc con tối ưu và các bài toán con lồng nhau
Chúng ta sử dụng thuật toán quy hoạch động khi: Chọn một:
Chúng ta cần một giải pháp tối ưu
Giải pháp có cấu trúc con tối ưu
Nó nhanh hơn giải thuật tham lam
Nó nhanh hơn giải thuật chia để trị
Chỉ ra tên bài toán có dữ liệu đầu vào là hai dãy X={x1,x2,…,xm} và Y={y1,y2,…,yn} . Chọn một:
Bài toán trình tự nhân dãy ma trận tối ưu
Bài toán tập con độc lập lớn nhất trên cây
Bài toán dây con có trọng lượng lớn nhất
Bài toán dây con chung dài nhất
Chỉ ra độ phức tạp thuật toán quy hoạch động giải bài toán dây con chung dài nhất. Chọn một:
O(n)
O(n2)
O(mn)
O(2n)
Xét các ma trận P , Q , R và S lần lượt là các ma trận 20×15 , 15×30 , 30×5 và 5×40 . Số phép nhân tối thiểu cần thiết để nhân bốn ma trận là bao nhiêu? Chọn một:
6050
7500
7750
12000
Điều gì xảy ra khi phương pháp tiếp cận từ trên xuống của quy hoạch động được áp dụng cho bất kỳ bài toán nào? Chọn một:
Nó làm tăng cả độ phức tạp về thời gian và độ phức tạp về không gian
Nó làm tăng độ phức tạp về không gian và giảm độ phức tạp về thời gian
Nó làm tăng độ phức tạp về thời gian và giảm độ phức tạp về không gian
Nó làm giảm cả độ phức tạp về thời gian và độ phức tạp về không gian
Tìm trình tự nhân và số cách tính tối ưu cho tích của ba ma trận M1M2M3 với các kích thước =(2,5,4,3) . Chọn một:
(M1)(M2M3) , số phép tính 90
(M1)(M2M3) , số phép tính 64
(M1M2)(M3) , số phép tính 64
(M1M2)(M3) , số phép tính 90
Bốn ma trận M1 , M2 , M3 và M4 có kích thước lần lượt là p×q , q×r , r×s và s×t có thể được nhân bằng một số cách với tổng số phép nhân vô hướng khác nhau. Ví dụ: khi nhân với ((M1×M2)×(M3×M4)) , tổng số phép nhân là pqr+rst+prt . Khi nhân với ((M1×M2)×M3)×M4 , tổng số phép nhân vô hướng là pqr+prs+pst . Nếu p=10 , q=100 , r=20 , s=5 và t=80 thì số phép nhân vô hướng ít nhất cần thiết là: Chọn một:
248000
44000
19000
25000
Tìm cách tính tối ưu cho tích của bốn ma trận có kích thước lưu trữ d vector d=(13,5,89,3,34) . Với s=1 , m12=5785 , m23=1335 và m34=9078 . Với s=2 , hãy tìm m13 và m24 .
9256 và 1845
1530 và 1845
1530 và 24208
9256 và 24208
Chọn phát biểu đúng về đặc điểm khác nhau trong cách giải các bài toán con của kỹ thuật thiết kế quy hoạch động và chia để trị.
Quy hoạch động dùng lời gọi đệ quy, chia để trị lưu lại lời giải của các bài toán con
Chia để trị dùng lời gọi đệ quy, quy hoạch động lưu lại lời giải của các bài toán con
Chia để trị dùng lời gọi đệ quy, quy hoạch động không cần phải giải các bài toán con
Quy hoạch động lưu lại lời giải của các bài toán con, chia để trị có thể không có bài toán con nào
Hạn chế chính của thuật toán tham lam là gì?
Khó cài đặt bằng lập trình
Thường cho kết quả sai trong mọi trường hợp
Dễ thực hiện nhưng không đảm bảo lời giải tối ưu toàn cục
Tốn nhiều bộ nhớ
Thuật toán tham lam được xây dựng dựa trên nguyên tắc nào?
Chia nhỏ bài toán thành các bài toán con và giải bằng quy hoạch động
Luôn chọn phương án tối ưu tại thời điểm hiện tại
Duyệt tất cả các khả năng để chọn kết quả tốt nhất
Quay lui để tìm lời giải đúng
Tính chất nào sau đây KHÔNG đúng với thuật toán tham lam?
Quyết định tại mỗi bước dựa trên lợi ích cục bộ
Kết quả thu được luôn là tối ưu toàn cục
Có thể áp dụng cho bài toán cái túi hoặc đổi tiền
Không cần quay lui
Bài toán cái túi (Knapsack) có thể giải bằng thuật toán tham lam nếu:
Đồ vật chỉ có hai loại trọng lượng
Là bài toán cái túi 0-1
Là bài toán cái túi phân số (Fractional Knapsack)
Mỗi đồ vật có giá trị bằng trọng lượng
Nhược điểm chính của Chiến lược thiết kế Tham Lam (so với các chiến lược khác) là gì?
Khó chứng minh một lời giải tham lam là kết quả tối ưu
Khó cài đặt
Khó phân tích
Khó hiểu
Cho biết bước phân ra giải bài toán con độc lập lớn nhất trên cây theo thuật toán quy hoạch động, bài toán tổng quát được chia thành bao nhiêu bài toán con.
1
2
n
(m+1)(n+1)
Khẳng định nào sau đây là phù hợp nhất của Chiến lược thiết kế Tham Lam?
Các lời giải theo phương pháp tham lam là tối ưu
Các lời giải theo phương pháp tham lam chưa chắc là tối ưu
Các lời giải theo phương pháp tham lam cho kết quả giống quy hoạch động
Các lời giải theo phương pháp tham lam cho kết quả giống chia để trị
Khẳng định nào sau đây phù hợp nhất?
Chiến lược Tham Lam tốt hơn chia để trị
Chiến lược Tham Lam tốt hơn quy hoạch động
Chiến lược Chia để trị tốt hơn quy hoạch động
Chiến lược Tham Lam dùng cho giải các bài toán tối ưu tổ hợp
Xét bài toán lập lịch với 4 công việc J1, J2, J3, J4 và deadline tương ứng (d1, d2, d3, d4) = (4, 2, 4, 2). Điều nào sau đây là lịch tối ưu mà không vi phạm bất kỳ lịch trình công việc nào?
J2, J4, J1, J3
J4, J1, J2, J3
J4, J2, J1, J3
J4, J2, J3, J1
Thành phần có vai trò quan trọng nhất tới quyết định tham lam là gì?
Tính chất lựa chọn (hàm) tham lam
Tính chất phức tạp của bài toán
Tính chất lựa chọn cấu trúc dữ liệu
Tính chất lựa chọn nghiệm
Thuật toán có độ phức tạp O (👎) nghĩa là gì?
Thời gian chạy tăng theo bậc n
Thời gian chạy không phụ thuộc vào n
Thời gian chạy tăng tuyến tính theo n
Thời gian chạy giảm khi n tăng
Cho các hàm: Trật tự nào dưới đây thể hiện sự tăng dần của các hàm?
A, D, C, E, B
D, A, C, E, B
A, C, D, E, B
A, C, D, B, E
Làm thế nào bạn có thể đo lường hiệu quả của một thuật toán?
Bộ vi xử lý và bộ nhớ
Độ phức tạp và năng lực
Thời gian và không gian
Dữ liệu và không gian
Ký hiệu nào phù hợp để phân tích cận trên và cận dưới của độ phức tạp thuật toán?
O - lớn
T - lớn
Ω - lớn
Θ - lớn
Khẳng định nào sau đây sai?
Nếu f(n)=O(g(n)) thì g(n)=Ω(f(n))
Nếu f(n)=Θ(g(n)) thì g(n)=Θ(f(n))
Nếu f(n)=Θ(g(n)) thì g(n)=Ω(f(n))
Nếu f(n)=Ω(g(n)) thì g(n)=O(f(n))
Giải thuật đệ quy là gì?
Trong giải thuật có lời gọi của chính nó
Trong giải thuật có lời gọi của chính nó nhưng với quy mô nhỏ hơn
Trong giải thuật có lời gọi của chính nó nhưng với quy mô lớn hơn
Trong giải thuật có lời gọi tới một giải thuật khác đã biết kết quả
T(n)=2T(n/2)+2200 . Khẳng định nào sau đây đúng?
Θ(n2)
Θ(nlogn)
Θ(logn)
Θ(n)
Có hàm đệ quy sau: Kết quả bằng bao nhiêu khi n=4 ?
21
22
23
24
T(n)=7T(n/2)+3n2+2 . Khẳng định nào sau đây đúng?
O(n2.8)
O(n)
O(n2)
O(n2log(n))
Gọi W(n) và A(n) lần lượt là thời gian chạy trường hợp xấu nhất và trường hợp trung bình của thuật toán được thực hiện trên đầu vào có kích thước n . Điều nào sau đây luôn đúng?
A(n)=Ω(W(n))
A(n)=Θ(W(n))
A(n)=O(W(n))
A(n)=o(W(n))
Cho giải thuật: Để thực hiện câu lệnh S = F(3), chương trình cần gọi đệ quy mấy lần?
1
2
3
4
Độ phức tạp của thuật toán tìm kiếm nhị phân là gì?
O(n)
O(log n)
O(n2)
O(n log n)
Trong đệ quy, điều kiện mà hàm sẽ ngừng gọi chính nó là.............?
Best case
Worst case
Base case
Average case
Thời gian chạy đối với trường hợp xấu nhất của QuickSort là gì và độ phức tạp thời gian trong trường hợp xấu nhất là gì?
Thời gian chạy là T(n) = T(n−2) + O(n) và độ phức tạp thời gian là O(n2)
Thời gian chạy là T(n) = T(n−1)+O(n) và độ phức tạp thời gian là O(n2)
Thời gian chạy là T(n) = T(n/2) + O(n) và độ phức tạp thời gian là O(n log n)
Thời gian chạy là T(n) = T(n-1) + O(n) và độ phức tạp thời gian là O(n)
Cho một đầu vào arr = {2, 5, 7, 99, 899}; khóa = 899; cấp độ đệ quy trong thuật toán tìm kiếm nhị phân là bao nhiêu?
5
2
3
4
Độ phức tạp của thuật toán tìm kiếm nhị phân được tính là:
T(n) = T(n/2) + k , trong đó k là hằng số
T(n) = 2T(n/2) + k , trong đó k là hằng số
T(n) = T(n/2) + n
T(n) = T(n/2) + log n
Cho đoạn chương trình sau: Hãy cho biết đoạn chương trình trên tính toán gì?
Sử dụng x+y phép trừ lặp lại
Sử dụng x mod y phép trừ lặp lại
Ước số chung lớn nhất của x và y
Bội số chung nhỏ nhất của x và y
Cho dãy số: 30, 11, 31, 43, 25, 17, 28, 39, 16, 12, 59, 8. Áp dụng thuật toán QuickSort để sắp xếp dãy số trên, nếu chọn phần tử đầu tiên có giá trị 30 làm chốt, sau lần phân đoạn thứ nhất thu được kết quả là:
Đoạn 1: 16, 11, 8, 12, 25, 17, 28 | Chốt: 30 | Đoạn 2: 39, 43, 59, 31
Đoạn 1: 28, 11, 8, 12, 25, 17, 16 | Chốt: 30 | Đoạn 2: 39, 43, 59, 31
Đoạn 1: 17, 11, 8, 12, 25, 28, 16 | Chốt: 30 | Đoạn 2: 39, 43, 59, 31
Đoạn 1: 25, 11, 8, 12, 17, 28, 16 | Chốt: 30 | Đoạn 2: 39, 43, 59, 31
Kỹ thuật chia để trị chia thành a không gian để trị có kích thước là n/b và phát sinh các phép toán theo hàm f(n), thì ta có công thức truy hồi tổng quát như sau:
T(n) = 2T(n/2) + f(n)
T(n) = aT(n/b) + f(n)
T(n) = bT(n/a) + f(n)
T(n) = aT(n/a) + f(n)
Trong quy hoạch động, kỹ thuật lưu trữ các giá trị đã tính toán trước đó được gọi là
Lưu lại giá trị
Lưu trữ giá trị
Ghi nhớ
Lập bản đồ
Chỉ ra tên của bài toán tối ưu được giải bằng kỹ thuật thiết kế quy hoạch động
Bài toán tập con độc lập lớn nhất trên cây
Bài toán tìm kiếm nhị phân
Bài toán tìm giá trị lớn nhất
Bài toán sắp xếp nổi bọt
Chỉ ra độ phức tạp thuật toán quy hoạch động giải bài toán dãy con trọng lượng lớn nhất
O(log n)
O(n2)
O(n log n)
O(n)
Cho 2 dãy như sau: X = ⟨ B, C, D, C, A, B, C ⟩; Y = ⟨ C, A, D, B, C, B ⟩. Hãy tìm độ dài của dãy con chung dài nhất của X và Y.
5
3
4
2
Xét hai ma trận P và Q lần lượt là các ma trận 10 x 20 và 20 x 30. Số phép nhân cần thiết để nhân hai ma trận là bao nhiêu?
10*20
10*30
20*30
10*20*30
Chỉ ra công thức tính m[i][j] là số phép nhân ít nhất đầy ma trận Mi+1 Mi+2 … Mj với 1 ≤ i ≤ j ≤ n trong bước tổng hợp lời giải của bài toán trình tự nhân dãy ma trận khi giải bằng thuật toán quy hoạch động.
Biểu thức công thức tại hình (a)
Biểu thức công thức tại hình (a)
Biểu thức công thức tại hình (b)
Biểu thức công thức tại hình (b)
Biểu thức công thức tại hình (c)
Biểu thức công thức tại hình (c)
Biểu thức công thức tại hình (d)
Biểu thức công thức tại hình (d)
Công thức nào sau đây tính dãy con chung dài nhất:
l(i, j) = 0 nếu i = 0 hoặc j = 0; = expr1, nếu i > 0 và X[i−1] = Y[j−1]; = expr2, nếu i > 0 và X[i−1] ≠ Y[j−1].
expr1 = l(i, j−1)
expr1 = l(i−1, j) + 1
expr2 = max(l(i−1, j−1), l(i, j))
expr2 = max(l(i−1, j), l(i, j−1))
Cho đoạn mã sau để tìm dãy con chung dài nhất của 2 dãy Xi và Yi (0 ≤ i ≤ m, 0 ≤ j ≤ n):
Chọn dòng lệnh thích hợp để điền vào chỗ trống:
L[i, j] = L[i, j] + 1;
L[i, j] = L[i - 1, j - 1] + 1;
L[i, j] = L[i - 1, j - 1];
L[i, j] = L[i, j];
Phát biểu nào sau đây đúng về kỹ thuật thiết kế thuật toán Quy hoạch động và Chia để trị (chọn 2 đáp án)?
Cả quy hoạch động và chia để trị thì bài toán con kích thước nhỏ nhất đều có thể giải một cách trực tiếp
Bài toán tổng quát phải được giải thông qua ít nhất 2 bài toán con
Hai kỹ thuật có cách giải các bài toán con khác nhau
Cả quy hoạch động và chia để trị trước tiên đều chia bài toán cần giải thành những bài toán con nhỏ hơn có cùng dạng với bài toán ban đầu
Bước đầu tiên khi áp dụng thuật toán tham lam là gì?
Chọn bài toán con có kết quả tốt nhất
Xác định tiêu chí lựa chọn tham lam
Tính tất cả các phương án có thể xảy ra
Tìm lời giải tối ưu bằng đệ quy
Trong bài toán đổi tiền bằng thuật toán tham lam, ta chọn tờ tiền nào trước?
Tờ tiền có mệnh giá nhỏ nhất
Tờ tiền có mệnh giá lớn nhất nhưng không vượt quá số tiền cần đổi
Tờ tiền ngẫu nhiên
Tờ tiền xuất hiện ít nhất trong cây ATM
Thuật toán tham lam thường được dùng để giải loại bài toán nào?
Bài toán tối ưu
Bài toán tìm kiếm
Bài toán sắp xếp
Bài toán quy hoạch
Chỉ ra công thức tính độ dài của dãy con chung lớn nhất C[i, j] trong bước tổng hợp lời giải của bài toán dãy con chung dài nhất khi giải bằng thuật toán quy hoạch động.
Biểu thức công thức tại hình (a)
Biểu thức công thức tại hình (a)
Biểu thức công thức tại hình (b)
Biểu thức công thức tại hình (b)
Biểu thức công thức tại hình (c)
Biểu thức công thức tại hình (c)
Biểu thức công thức tại hình (d)
Biểu thức công thức tại hình (d)
Cho biết đoạn chương trình sau giải bài toán nào bằng kỹ thuật thiết kế quy hoạch động: Mã giả hiển thị một thuật toán với các vòng lặp for cho i từ 1 đến m, for j từ 1 đến n và các kiểm tra so sánh x[i] với y[j], cập nhật c[i][j] dựa trên c[i-1][j-1], c[i-1][j], c[i][j-1].
Bài toán trình tự nhân dãy ma trận tối ưu
Bài toán tập con độc lập lớn nhất trên cây
Bài toán dãy con có trọng lượng lớn nhất
Bài toán dãy con chung dài nhất
Độ phức tạp thời gian được đo lường như thế nào?
Bằng cách đếm số câu lệnh trong một thuật toán
Bằng cách đếm số lượng hoạt động nguyên thủy được thực hiện bởi thuật toán trên một kích thước đầu vào nhất định
Bằng cách đếm kích thước của dữ liệu đầu vào cho thuật toán
Bằng cách đếm kích thước của dữ liệu đầu ra cho thuật toán
Cái nào sau đây KHÔNG thuộc các ký hiệu độ phức tạp thuật toán?
O - lớn
T - lớn
Ω - lớn
Θ - lớn
Chọn câu trả lời đúng nhất về thuật toán.
Thuật toán rất quan trọng với chương trình
Thuật toán cần nhiều dữ liệu ra và vào
Thuật toán là một dãy các bước hữu hạn, tất cả các phép toán phải đơn giản
Thuật toán là một dãy hữu hạn các bước, mỗi bước mô tả chính xác phép toán hoặc hành động để thực hiện vấn đề đặt ra
Cho T(n) = 2T(n/2) + 2020. Khẳng định nào sau đây đúng?
Θ(n2)
Θ(n log n)
Θ(log n)
Θ(n)
Với đoạn mã dưới đây hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp chữ O lớn trong trường hợp xấu nhất:
O(n)
O(log N)
O(n log N)
O(n2)
Với đoạn mã giả sau hãy xác định độ phức tạp tính toán của giải thuật bằng ký pháp chữ O lớn trong trường hợp xấu nhất:
O(n)
O(Nlog N)
O(N*N)
O(log N)
Có hàm đệ quy sau: public static long F(int n) { if (n == 0) return 2; else return ... } Kết quả bằng bao nhiêu khi n = 4 (theo đoạn mã hiển thị)?
48
49
50
51
Độ phức tạp của hai hàm sau? fun1(int n) { if (n < 1) return n; return 2*fun1(n-1); } fun2(int n) { if (n < 1) return n; return fun2(n-1) + fun2(n-1); }
O(2^n) cho cả fun1() và fun2()
O(n) cho fun1() và O(2^n) cho fun2()
O(2^n) cho fun1() và O(n) cho fun2()
O(n) cho cả fun1() và fun2()
Trường hợp nào sau đây không tồn tại trong lý thuyết độ phức tạp?
Trường hợp tốt nhất
Trường hợp xấu nhất
Trường hợp rỗng
Trường hợp trung bình
Khi thiết kế giải thuật đệ quy, bước đầu tiên ta phải:
Xác định điều kiện dừng đệ quy và lời giải ứng với trường hợp này
Xác định trường hợp đệ quy
Xây dựng công thức đệ quy
Tìm cách khử đệ quy
Thuật toán nào sau đây KHÔNG phải là thuật toán chia để trị?
Thuật toán Euclid tìm ước số chung lớn nhất của 2 số nguyên dương
Thuật toán sắp xếp QuickSort
Thuật toán sắp xếp Bubble Sort
Thuật toán sắp xếp Merge Sort
Độ phức tạp của thuật toán QuickSort trong trường hợp tốt nhất là:
O(n2)
O(n log n)
O(n)
O(log n)
Độ phức tạp của thuật toán QuickSort trong trường hợp xấu nhất là:
O(n2)
O(n log n)
O(n)
O(log n)
Cho một mảng arr = {5, 6, 77, 88, 99} và key = 88; Có bao nhiêu lần lặp được thực hiện cho đến khi phần tử được tìm thấy?
1
3
4
2
Cho mảng a = {2, 6, 1}. Các chốt được trả về do kết quả của việc phân vùng tiếp theo là gì?
1 và 6
2 và 6
6 và 1
1
Chỉ ra tên bài toán không được giải bằng kỹ thuật thiết kế quy hoạch động.
Bài toán sắp xếp chọn và sắp xếp chèn
Bài toán tìm trình tự nhân tối ưu dãy ma trận
Bài toán dãy con có trọng lượng lớn nhất
Bài toán dãy con chung dài nhất
Chỉ ra độ phức tạp thuật toán quy hoạch động tìm số Fibonacci thứ n (fn = fn-1 + fn-2, f1 = f2 = 1).
O(log n)
O(n2)
O(1)
O(n)
Các bài toán con trong thuật toán quy hoạch động được giải quyết:
Độc lập nhau
Phụ thuộc nhau
Song song
Đồng thời
Chuỗi nào sau đây là dãy con chung dài nhất giữa các chuỗi "hbcfgmnq" và "hbcfgmnapq"?
hgm
cqnf
bmfq
cgnq
Hai tính chất quan trọng mà một bài toán tối ưu cần phải thỏa mãn để có thể áp dụng quy hoạch động (chọn 2 đáp án).
Đệ quy và Cấu trúc con tối ưu
Số lượng các bài toán con phải không quá lớn và Đệ quy
Cấu trúc con tối ưu và Số lượng các bài toán con phải không quá lớn
Bài toán tổng quát có thể giải bằng độ phức tạp hằng số và đệ quy
Xem xét các chuỗi "PQRSTPQRS" và "PRATPBQPRS". Độ dài của dãy con chung dài nhất là bao nhiêu?
9
8
7
6
Theo bước phân rã bài toán dãy con chung dài nhất (LCS) bằng quy hoạch động, bài toán tổng quát được chia thành bao nhiêu bài toán con?
1
2
n
(m+1)(n+1)
Cho đoạn mã trong hình minh họa để tìm dãy con chung dài nhất của hai dãy X_i và Y_i (chỉ số thoả mãn 0 < i ≤ m, 0 ≤ j ≤ n). Hãy chọn dòng lệnh thích hợp để điền vào chỗ trống trong phần xử lý trường hợp X[i] ≠ Y[j].
L[i, j] = Math.Max(L[i - 1, j - 1], L[i, j - 1]);
L[i, j] = Math.Max(L[i - 1, j], L[i - 1, j - 1]);
L[i, j] = Math.Max(L[i - 1, j], L[i, j - 1]);
L[i, j] = Math.Max(L[i, j], L[i - 1, j - 1]);
Thuật toán tham lam thường không đảm bảo tối ưu toàn cục vì lý do nào?
Nó dựa vào các lựa chọn cục bộ
Nó không sử dụng quay lui
Nó không có điều kiện dừng
Nó phụ thuộc vào ngôn ngữ lập trình
Trong sơ đồ tổng quát của thuật toán tham lam, bước “Select(C)” có ý nghĩa gì?
Chọn phần tử cuối cùng của danh sách
Lựa chọn ứng cử viên tiềm năng nhất để thêm vào lời giải
Loại bỏ phần tử lớn nhất khỏi danh sách
Thực hiện phép đệ quy trên các phần tử còn lại
