Phiếu bài tập Thuật toán và độ phức tạp có đáp án

Phiếu bài tập Thuật toán và độ phức tạp miễn phí để in: 8 bài từ cơ bản đến mức đề thi, kèm đáp án. In ra hoặc lưu thành PDF.

Dành cho giảng viên: miễn phí in, sao chép và sử dụng trên lớp. Mỗi phiếu bài tập mới có số liệu mới và đáp án riêng. Chúng tôi rất cảm ơn nếu bạn đặt liên kết đến ExamProblems trên trang môn học.

Tên: ____________________   Ngày: ____________

1.Dễ

Tìm kiếm nhị phân đòi hỏi gì ở đầu vào của nó?

  1. AMảng không được có quá 1000 phần tử
  2. BĐộ dài mảng phải là lũy thừa của hai
  3. CMảng phải được sắp xếp
  4. DMảng chỉ được chứa số dương
2.Dễ

Một thuật toán O(n²) mất 1 giây khi n = 1000. Khoảng bao lâu khi n = 2000?

  1. A8 giây
  2. B4 giây
  3. C1 giây
  4. D2 giây
3.Dễ

Ghi nhớ (memoisation) là gì?

  1. AGiải phóng bộ nhớ sau khi một hàm trả về
  2. 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ớ
  3. CTự độ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
  4. DViết chú thích bên cạnh từng dòng mã
4.Trung bình

Vì sao nhiều hàm sắp xếp trong thư viện chuyển sang sắp xếp chèn cho các mảng con rất nhỏ?

  1. ACác thuật toán đệ quy không xử lý được mảng dưới 10 phần tử
  2. BSắp xếp chèn là O(n log n) trong trường hợp xấu nhất
  3. CSắp xếp chèn ít chi phí phụ và nhanh trên đầu vào nhỏ hoặc gần như đã sắp xếp
  4. DSắp xếp chèn dùng ít bộ nhớ hơn mọi thuật toán sắp xếp khác trên đầu vào lớ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?

  1. AO(n + k)
  2. BO(k n log n)
  3. CO(n log n + k log n)
  4. DO(nk)
6.Trung bình

Một hàm chạy một vòng lặp n lần lặp rồi, tách biệt, một vòng lặp khác n lần lặp. Độ phức tạp thời gian của nó là gì?

  1. AO(2ⁿ)
  2. BO(n)
  3. CO(log n)
  4. DO(n²)
7.Khó

Phát biểu nào về ký hiệu little-o là đúng?

  1. An = o(n), vì mọi hàm đều là little-o của chính nó
  2. B2n = o(n), vì 2n tăng chậm
  3. Cn² = o(n)
  4. Dn = o(n²), nhưng n không phải o(n)
8.Khó

Lấy cả hai đầu mút của mọi cạnh trong một cặp ghép cực đại cho ta một phủ đỉnh. Phủ này tốt đến mức nào?

  1. ATối đa log n lần giá trị nhỏ nhất
  2. BLuôn là một phủ đỉnh nhỏ nhất
  3. CCó kích thước tối đa gấp đôi phủ đỉnh nhỏ nhất
  4. DKhông rõ chất lượng so với tối ưu

Đáp án

  1. 1. C · Mảng phải được sắp xếp
  2. 2. B · 4 giây
  3. 3. 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ớ
  4. 4. C · Sắp xếp chèn ít chi phí phụ và nhanh trên đầu vào nhỏ hoặc gần như đã sắp xếp
  5. 5. C · O(n log n + k log n)
  6. 6. B · O(n)
  7. 7. D · n = o(n²), nhưng n không phải o(n)
  8. 8. C · Có kích thước tối đa gấp đôi phủ đỉnh nhỏ nhất

Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.