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ễ

Ghi nhớ (memoisation) là gì?

  1. ALư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ớ
  2. BGiải phóng bộ nhớ sau khi một hàm trả về
  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ã
2.Dễ

Sắp xếp trộn dùng chiến lược thiết kế nào?

  1. AQuy hoạch động
  2. BLựa chọn tham lam
  3. CChia để trị
  4. DVét cạn
3.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. A3 giây
  2. B12 giây
  3. C6 giây
  4. D9 giây
4.Trung bình

Tìm kiếm nhị phân cần khoảng bao nhiêu phép so sánh trong trường hợp xấu nhất trên một mảng đã sắp xếp có 1,000,000 phần tử?

  1. AKhoảng 100
  2. BKhoảng 1,000
  3. CKhoảng 20
  4. DKhoảng 500,000
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

Độ 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(E log V)
  3. CO(V + E)
  4. DO(V × E)
7.Khó

Thuật toán nào tìm cây khung nhỏ nhất bằng cách liên tục thêm cạnh rẻ nhất không tạo chu trình?

  1. AThuật toán Dijkstra
  2. BFloyd–Warshall
  3. CThuật toán Kruskal
  4. DThuật toán Prim bắt đầu từ một nút
8.Khó

Vì sao tra cứu trung bình trong bảng băm là O(1) nhưng trường hợp xấu nhất là O(n)?

  1. ANhiều khóa có thể va chạm vào cùng một ngăn
  2. BMảng có truy cập O(n)
  3. CHàm băm chậm
  4. DCác khóa phải được sắp xếp trước

Đáp án

  1. 1. A · 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ớ
  2. 2. C · Chia để trị
  3. 3. C · 6 giây
  4. 4. C · Khoảng 20
  5. 5. C · O(n log n + k log n)
  6. 6. D · O(V × E)
  7. 7. C · Thuật toán Kruskal
  8. 8. A · Nhiều khóa có thể va chạm vào cùng một ngăn

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