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ễ

Thuật toán là gì?

  1. AMột dãy hữu hạn các bước được xác định rõ để giải một bài toán
  2. BMột ngôn ngữ lập trình được thiết kế để viết các công thức toán học
  3. CBất kỳ chương trình máy tính nào có giao diện đồ họa
  4. DMột cấu trúc dữ liệu lưu trữ các số
2.Dễ

Ghi nhớ (memoisation) là gì?

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

Thời gian chạy của sắp xếp đếm cho n số nguyên trong khoảng từ 0 đến k là bao nhiêu?

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

Độ phức tạp thời gian của thuật toán Bellman–Ford trên đồ thị có V đỉnh và E cạnh là gì?

  1. AO(V³ × E)
  2. BO(V × E)
  3. CO(E log V)
  4. DO(V + E)
5.Trung bình

Có đúng không khi nói một thuật toán O(n²) cũng là O(n³)?

  1. AĐúng, nhưng chỉ khi n nhỏ hơn 100
  2. BKhông, vì Big O phải luôn cho tốc độ tăng chính xác của hàm
  3. CKhông, vì n³ nhỏ hơn n² khi n lớn
  4. DĐúng, vì Big O là cận trên và n² tăng không nhanh hơn n³
6.Trung bình

Công thức truy hồi T(n) = T(n − 1) + O(1) có nghiệm là gì?

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

Thuật toán Strassen nhân ma trận bằng 7 thay vì 8 phép nhân đệ quy các khối nửa kích thước. Thời gian chạy của nó là bao nhiêu?

  1. AΘ(n³)
  2. BΘ(n2)
  3. CΘ(n² log n)
  4. DΘ(nlog₂ 7), khoảng n2,81
8.Khó

Kỹ thuật nào cho thời gian chạy kỳ vọng O(n log n) của quicksort trên mọi đầu vào?

  1. ALuôn chọn phần tử đầu tiên
  2. BChỉ dùng đệ quy ở phía bên trái
  3. CChọn pivot đồng đều ngẫu nhiên
  4. DSắp xếp đầu vào trước khi chạy quicksort

Đáp án

  1. 1. A · Một dãy hữu hạn các bước được xác định rõ để giải một bài toán
  2. 2. C · 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. 3. D · O(n + k)
  4. 4. B · O(V × E)
  5. 5. D · Đúng, vì Big O là cận trên và n² tăng không nhanh hơn n³
  6. 6. B · O(n)
  7. 7. D · Θ(nlog₂ 7), khoảng n2,81
  8. 8. C · Chọn pivot đồng đều ngẫu nhiên

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