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ễ

Một thuật toán O(n) mất 3 giây khi n = 1 triệu. Khoảng bao lâu khi n = 2 triệu?

  1. A6 giây
  2. B12 giây
  3. C9 giây
  4. D3 giây
2.Dễ

Một thuật toán có hai vòng lặp lồng nhau, mỗi vòng chạy n lần, thường có độ phức tạp nào?

  1. AO(log n)
  2. BO(n)
  3. CO(n²)
  4. DO(2n)
3.Dễ

Độ phức tạp không gian đo lường:

  1. AKích thước vật lý của máy tính
  2. BLượng bộ nhớ một thuật toán cần khi đầu vào tăng
  3. CDung lượng đĩa của tệp chương trình sau khi được biên dịch
  4. DSố dòng mã
4.Trung bình

Độ phức tạp thời gian trong trường hợp xấu nhất của quicksort là gì?

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

Trong bài toán chọn hoạt động, quy tắc tham lam nào luôn cho số hoạt động không chồng lấn tối đa?

  1. AChọn hoạt động có ít chồng lấn nhất trước, rồi lặp lại với các hoạt động tương thích
  2. BChọn hoạt động kết thúc sớm nhất, rồi lặp lại với các hoạt động tương thích
  3. CChọn hoạt động ngắn nhất trước
  4. DChọn hoạt động bắt đầu sớm nhất
6.Trung bình

Độ phức tạp thời gian của việc nhân hai ma trận n × n bằng ba vòng lặp lồng nhau chuẩn là gì?

  1. AO(n)
  2. BO(n² log n)
  3. CO(n³)
  4. DO(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Θ(nlog₂ 7), khoảng n2,81
  3. CΘ(n2)
  4. DΘ(n² log n)
8.Khó

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

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

Đáp án

  1. 1. A · 6 giây
  2. 2. C · O(n²)
  3. 3. B · Lượng bộ nhớ một thuật toán cần khi đầu vào tăng
  4. 4. B · O(n²)
  5. 5. B · Chọn hoạt động kết thúc sớm nhất, rồi lặp lại với các hoạt động tương thích
  6. 6. C · O(n³)
  7. 7. B · Θ(nlog₂ 7), khoảng n2,81
  8. 8. A · n = o(n²), nhưng n không phải o(n)

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