1.Dễ
Sắp xếp trộn dùng chiến lược thiết kế nào?
- AQuy hoạch động
- BVét cạn
- CChia để trị
- DLựa chọn tham lam
2.Dễ
Ghi nhớ (memoisation) là gì?
- AGiải phóng bộ nhớ sau khi một hàm trả về
- BLưu kết quả của các lời gọi hàm để các lời gọi lặp lại được trả lời từ bộ nhớ
- CViết chú thích bên cạnh từng dòng mã
- DTự động chuyển đệ quy thành vòng lặp tương đương để không cần ngăn xếp lời gọi
3.Dễ
Thuật toán sắp xếp nào chọn một pivot và phân hoạch mảng thành các phần tử nhỏ hơn và lớn hơn?
- ASắp xếp nổi bọt
- BQuicksort
- CSắp xếp trộn
- DSắp xếp chèn
4.Trung bình
Vì sao quy hoạch động không đem lại sự tăng tốc thực sự cho sắp xếp trộn?
- AQuy hoạch động chỉ hoạt động trên các bài toán đồ thị, không dùng được trên mảng
- BCác bài toán con của nó không chồng lặp, nên không có gì để tái sử dụng
- CSắp xếp trộn không có cấu trúc đệ quy
- DSắp xếp trộn đã là O(n)
5.Trung bình
Bạn sắp xếp một mảng n phần tử một lần rồi trả lời k truy vấn thuộc về bằng tìm kiếm nhị phân. Tổng chi phí là bao nhiêu?
- AO(n + k)
- BO(nk)
- CO(n log n + k log n)
- DO(k n log n)
6.Trung bình
Đệ quy của sắp xếp trộn có bao nhiêu tầng đối với một mảng n phần tử?
- AKhoảng log₂ n
- BKhoảng n
- CKhoảng n / 2
- DKhoảng √n
7.Khó
Phát biểu nào về P và NP là đúng?
- ANP có nghĩa là "không đa thức"
- BĐã được chứng minh rằng P ≠ NP
- CMọi bài toán trong P cũng thuộc NP
- DCác bài toán NP không thể được kiểm chứng nhanh
8.Khó
Độ phức tạp thời gian của: for i = 1 to n: for (j = i; j ≤ n; j = j + i) thực hiện công việc O(1) là gì?
- AO(n)
- BO(n log n)
- CO(n²)
- DO(n √n)
Đáp án
- 1. C · Chia để trị
- 2. B · Lưu kết quả của các lời gọi hàm để các lời gọi lặp lại được trả lời từ bộ nhớ
- 3. B · Quicksort
- 4. B · Các bài toán con của nó không chồng lặp, nên không có gì để tái sử dụng
- 5. C · O(n log n + k log n)
- 6. A · Khoảng log₂ n
- 7. C · Mọi bài toán trong P cũng thuộc NP
- 8. B · O(n log n)
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.