15+ Đề Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 01 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Độ phức tạp thời gian nào sau đây mô tả thuật toán có thời gian thực hiện không đổi, bất kể kích thước dữ liệu đầu vào?

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n^2)

Câu 2: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(n^2)

Câu 3: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(n^3)

Câu 4: Độ phức tạp thời gian O(n log n) thường gặp ở thuật toán sắp xếp nào sau đây?

  • A. Bubble Sort
  • B. Merge Sort
  • C. Selection Sort
  • D. Linear Search

Câu 5: Trong phân tích độ phức tạp thuật toán, trường hợp "xấu nhất" (worst-case) đề cập đến:

  • A. Thời gian thực hiện trung bình của thuật toán.
  • B. Thời gian thực hiện nhanh nhất của thuật toán.
  • C. Thời gian thực hiện tối đa mà thuật toán có thể mất.
  • D. Thời gian thực hiện khi dữ liệu đầu vào đã được sắp xếp.

Câu 6: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(1)?

  • A. Truy cập một phần tử trong mảng bằng chỉ số
  • B. Tìm kiếm tuần tự trong mảng chưa sắp xếp
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Tìm kiếm nhị phân trong mảng đã sắp xếp

Câu 7: Nếu một thuật toán có độ phức tạp O(n^3), điều gì xảy ra với thời gian thực hiện khi kích thước đầu vào (n) tăng gấp đôi?

  • A. Thời gian thực hiện tăng gấp đôi.
  • B. Thời gian thực hiện tăng gấp bốn lần.
  • C. Thời gian thực hiện tăng gấp sáu lần.
  • D. Thời gian thực hiện tăng gấp tám lần.

Câu 8: Độ phức tạp thời gian của thuật toán sắp xếp chèn (Insertion Sort) trong trường hợp trung bình là:

  • A. O(1)
  • B. O(n)
  • C. O(n^2)
  • D. O(log n)

Câu 9: Hàm số nào sau đây tăng trưởng chậm nhất khi n tiến tới vô cùng?

  • A. log₂(n)
  • B. n
  • C. n²
  • D. 2^n

Câu 10: Độ phức tạp thời gian nào là hiệu quả nhất cho thuật toán xử lý dữ liệu lớn?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 11: Xét thuật toán có độ phức tạp O(2^n). Điều gì cần lưu ý khi n tăng lên?

  • A. Thời gian thực hiện giảm đáng kể.
  • B. Thời gian thực hiện tăng tuyến tính.
  • C. Thời gian thực hiện tăng chậm.
  • D. Thời gian thực hiện tăng theo cấp số mũ và rất nhanh.

Câu 12: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thuật toán có thời gian thực hiện chấp nhận được cho kích thước đầu vào lớn (ví dụ n = 1 triệu)?

  • A. O(n^2)
  • B. O(2^n)
  • C. O(n log n)
  • D. O(n!)

Câu 13: Để tính độ phức tạp thời gian của một đoạn mã lặp lồng nhau, quy tắc chung là:

  • A. Cộng độ phức tạp của mỗi vòng lặp.
  • B. Nhân độ phức tạp của các vòng lặp lồng nhau.
  • C. Lấy độ phức tạp của vòng lặp ngoài cùng.
  • D. Chia độ phức tạp của vòng lặp trong cùng cho vòng lặp ngoài.

Câu 14: Giả sử thuật toán A có độ phức tạp O(n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào lớn, thuật toán nào sẽ nhanh hơn?

  • A. Thuật toán A (O(n))
  • B. Thuật toán B (O(n^2))
  • C. Cả hai thuật toán có tốc độ như nhau.
  • D. Không thể xác định nếu không biết hệ số hằng số.

Câu 15: Độ phức tạp không gian (space complexity) của thuật toán đo lường điều gì?

  • A. Thời gian thực hiện thuật toán.
  • B. Lượng bộ nhớ thuật toán sử dụng.
  • C. Số lượng phép toán số học.
  • D. Kích thước của mã nguồn thuật toán.

Câu 16: Cho đoạn mã sau, giả sử phép toán bên trong vòng lặp mất thời gian không đổi. Độ phức tạp thời gian của đoạn mã là gì?
```
for i from 1 to n:
j = 1
while j < n: j = j * 2 # phép toán O(1) ```

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(log n)

Câu 17: Trong các độ phức tạp sau, độ phức tạp nào kém hiệu quả nhất khi n lớn?

  • A. O(n log n)
  • B. O(n^2)
  • C. O(2^n)
  • D. O(n!)

Câu 18: Phân tích độ phức tạp thời gian giúp lập trình viên:

  • A. Viết mã nguồn ngắn gọn hơn.
  • B. Đánh giá hiệu suất thuật toán và lựa chọn thuật toán tốt hơn.
  • C. Gỡ lỗi chương trình nhanh hơn.
  • D. Tăng tính bảo mật của chương trình.

Câu 19: Độ phức tạp O(log n) thường liên quan đến thuật toán nào?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Tìm kiếm tuần tự (Linear Search)
  • C. Chia để trị (Divide and Conquer)
  • D. Duyệt đồ thị theo chiều rộng (BFS)

Câu 20: Trong biểu đồ thể hiện độ phức tạp, đường cong nào tăng trưởng dốc nhất khi n tăng?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(2^n)

Câu 21: Độ phức tạp thời gian nào sau đây là tốt nhất cho thuật toán sắp xếp?

  • A. O(n^2)
  • B. O(n log n)
  • C. O(n!)
  • D. O(2^n)

Câu 22: Khi so sánh O(n log n) và O(n^2), nhận định nào sau đây đúng khi n rất lớn?

  • A. O(n log n) hiệu quả hơn O(n^2).
  • B. O(n^2) hiệu quả hơn O(n log n).
  • C. Cả hai độ phức tạp tương đương.
  • D. Không thể so sánh nếu không biết giá trị cụ thể của n.

Câu 23: Độ phức tạp thời gian của thuật toán có thể bị ảnh hưởng bởi yếu tố nào sau đây?

  • A. Ngôn ngữ lập trình sử dụng.
  • B. Tên biến trong chương trình.
  • C. Cấu trúc dữ liệu sử dụng.
  • D. Màu nền của giao diện người dùng.

Câu 24: Để ước tính thời gian thực hiện thuật toán trong thực tế, ta thường quan tâm đến độ phức tạp thời gian nào?

  • A. Trường hợp tốt nhất (best-case).
  • B. Trường hợp xấu nhất (worst-case).
  • C. Trường hợp trung bình (average-case).
  • D. Trường hợp lý tưởng nhất (ideal-case).

Câu 25: Phát biểu nào sau đây mô tả đúng ý nghĩa của ký hiệu Big O?

  • A. Thời gian thực hiện chính xác của thuật toán.
  • B. Thời gian thực hiện trung bình của thuật toán.
  • C. Giới hạn trên về tốc độ tăng trưởng thời gian thực hiện của thuật toán.
  • D. Thời gian thực hiện tốt nhất của thuật toán.

Câu 26: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian O(n^2) trong trường hợp xấu nhất?

  • A. Bubble Sort
  • B. Merge Sort
  • C. Quick Sort
  • D. Binary Search

Câu 27: Cho hàm đệ quy tính giai thừa như sau:
```
function factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
Độ phức tạp thời gian của hàm này là:

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n!)

Câu 28: Để cải thiện hiệu suất của thuật toán có độ phức tạp O(n^2), hướng tiếp cận nào sau đây là phù hợp?

  • A. Tối ưu hóa các vòng lặp bên trong.
  • B. Sử dụng ngôn ngữ lập trình biên dịch.
  • C. Tăng tốc độ CPU của máy tính.
  • D. Tìm thuật toán khác có độ phức tạp thấp hơn.

Câu 29: Trong phân tích độ phức tạp, hằng số và các số hạng bậc thấp thường bị bỏ qua vì:

  • A. Chúng không ảnh hưởng đến thời gian thực hiện.
  • B. Chúng chỉ quan trọng với kích thước đầu vào nhỏ.
  • C. Chúng không đáng kể so với tốc độ tăng trưởng của số hạng bậc cao khi n lớn.
  • D. Chúng chỉ liên quan đến độ phức tạp không gian.

Câu 30: Cho thuật toán với độ phức tạp thời gian O(n log n). Nếu thời gian thực hiện cho n = 1000 là 1 giây, thời gian thực hiện ước tính cho n = 1000000 (gấp 1000 lần) là bao nhiêu?

  • A. 1 giây
  • B. Khoảng 20 phút
  • C. Khoảng 1 giờ
  • D. Khoảng 1 ngày

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 1: Độ phức tạp thời gian nào sau đây mô tả thuật toán có thời gian thực hiện không đổi, bất kể kích thước dữ liệu đầu vào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 2: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 3: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 4: Độ phức tạp thời gian O(n log n) thường gặp ở thuật toán sắp xếp nào sau đây?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 5: Trong phân tích độ phức tạp thuật toán, trường hợp 'xấu nhất' (worst-case) đề cập đến:

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 6: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(1)?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 7: Nếu một thuật toán có độ phức tạp O(n^3), điều gì xảy ra với thời gian thực hiện khi kích thước đầu vào (n) tăng gấp đôi?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 8: Độ phức tạp thời gian của thuật toán sắp xếp chèn (Insertion Sort) trong trường hợp trung bình là:

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 9: Hàm số nào sau đây tăng trưởng chậm nhất khi n tiến tới vô cùng?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 10: Độ phức tạp thời gian nào là hiệu quả nhất cho thuật toán xử lý dữ liệu lớn?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 11: Xét thuật toán có độ phức tạp O(2^n). Điều gì cần lưu ý khi n tăng lên?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 12: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thuật toán có thời gian thực hiện chấp nhận được cho kích thước đầu vào lớn (ví dụ n = 1 triệu)?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 13: Để tính độ phức tạp thời gian của một đoạn mã lặp lồng nhau, quy tắc chung là:

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 14: Giả sử thuật toán A có độ phức tạp O(n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào lớn, thuật toán nào sẽ nhanh hơn?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 15: Độ phức tạp không gian (space complexity) của thuật toán đo lường điều gì?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 16: Cho đoạn mã sau, giả sử phép toán bên trong vòng lặp mất thời gian không đổi. Độ phức tạp thời gian của đoạn mã là gì?
```
for i from 1 to n:
j = 1
while j < n: j = j * 2 # phép toán O(1) ```

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 17: Trong các độ phức tạp sau, độ phức tạp nào kém hiệu quả nhất khi n lớn?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 18: Phân tích độ phức tạp thời gian giúp lập trình viên:

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 19: Độ phức tạp O(log n) thường liên quan đến thuật toán nào?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 20: Trong biểu đồ thể hiện độ phức tạp, đường cong nào tăng trưởng dốc nhất khi n tăng?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 21: Độ phức tạp thời gian nào sau đây là tốt nhất cho thuật toán sắp xếp?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 22: Khi so sánh O(n log n) và O(n^2), nhận định nào sau đây đúng khi n rất lớn?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 23: Độ phức tạp thời gian của thuật toán có thể bị ảnh hưởng bởi yếu tố nào sau đây?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 24: Để ước tính thời gian thực hiện thuật toán trong thực tế, ta thường quan tâm đến độ phức tạp thời gian nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 25: Phát biểu nào sau đây mô tả đúng ý nghĩa của ký hiệu Big O?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 26: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian O(n^2) trong trường hợp xấu nhất?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 27: Cho hàm đệ quy tính giai thừa như sau:
```
function factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
Độ phức tạp thời gian của hàm này là:

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 28: Để cải thiện hiệu suất của thuật toán có độ phức tạp O(n^2), hướng tiếp cận nào sau đây là phù hợp?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 29: Trong phân tích độ phức tạp, hằng số và các số hạng bậc thấp thường bị bỏ qua vì:

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 1

Câu 30: Cho thuật toán với độ phức tạp thời gian O(n log n). Nếu thời gian thực hiện cho n = 1000 là 1 giây, thời gian thực hiện ước tính cho n = 1000000 (gấp 1000 lần) là bao nhiêu?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 02 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Để tính tổng các số chẵn từ 0 đến n (n là số nguyên dương chẵn), bạn viết một chương trình duyệt qua từng số từ 0 đến n và kiểm tra tính chẵn lẻ. Nếu n tăng gấp đôi, thời gian thực hiện chương trình sẽ thay đổi như thế nào?

  • A. Thời gian thực hiện không đổi.
  • B. Thời gian thực hiện tăng lên xấp xỉ gấp đôi.
  • C. Thời gian thực hiện tăng lên xấp xỉ gấp bốn lần.
  • D. Thời gian thực hiện giảm đi một nửa.

Câu 2: Cho đoạn mã giả sau:

```
for i from 1 to n:
for j from 1 to n:
thực hiện phép toán X
```

Độ phức tạp thời gian của đoạn mã trên là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(n log n)

Câu 3: Thuật toán tìm kiếm nhị phân (Binary Search) hoạt động hiệu quả nhất trên dữ liệu nào sau đây?

  • A. Mảng số nguyên ngẫu nhiên.
  • B. Danh sách liên kết chưa sắp xếp.
  • C. Cây nhị phân tìm kiếm không cân bằng.
  • D. Mảng số nguyên đã được sắp xếp tăng dần.

Câu 4: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau khi thực hiện xong vòng lặp ngoài đầu tiên, điều gì được đảm bảo?

  • A. Mảng đã được sắp xếp hoàn toàn.
  • B. Phần tử lớn nhất đã được đặt vào vị trí cuối cùng của mảng.
  • C. Phần tử nhỏ nhất đã được đặt vào vị trí đầu tiên của mảng.
  • D. Mảng đã được sắp xếp một nửa.

Câu 5: Độ phức tạp thời gian O(log n) thường gặp ở loại thuật toán nào?

  • A. Thuật toán duyệt toàn bộ danh sách.
  • B. Thuật toán có vòng lặp lồng nhau.
  • C. Thuật toán chia bài toán thành các bài toán con nhỏ hơn và giải quyết đệ quy.
  • D. Thuật toán thực hiện một số lượng phép toán cố định, không đổi theo kích thước đầu vào.

Câu 6: Cho hàm tính giai thừa số tự nhiên như sau:

```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```

Độ phức tạp thời gian của hàm `factorial(n)` là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(1)

Câu 7: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán có hiệu quả nhất khi kích thước dữ liệu đầu vào tăng lên?

  • A. O(n^2)
  • B. O(log n)
  • C. O(n)
  • D. O(n log n)

Câu 8: Xét thuật toán sắp xếp chọn (Selection Sort). Số lượng phép so sánh trong trường hợp xấu nhất khi sắp xếp một mảng n phần tử là bao nhiêu?

  • A. n - 1
  • B. log n
  • C. n(n - 1) / 2
  • D. n log n

Câu 9: Một thuật toán có độ phức tạp thời gian O(n log n). Nếu thời gian chạy của thuật toán là 1 giây khi n = 1000, thời gian chạy dự kiến sẽ là bao nhiêu khi n = 10000?

  • A. 10 giây
  • B. 100 giây
  • C. 1 giây
  • D. Khoảng 13 giây

Câu 10: Trong thuật toán tìm kiếm tuần tự (Linear Search), trường hợp tốt nhất xảy ra khi nào?

  • A. Phần tử cần tìm nằm ở vị trí đầu tiên của mảng.
  • B. Phần tử cần tìm nằm ở vị trí cuối cùng của mảng.
  • C. Mảng đã được sắp xếp.
  • D. Phần tử cần tìm không có trong mảng.

Câu 11: Độ phức tạp không gian (space complexity) của một thuật toán đề cập đến điều gì?

  • A. Thời gian thực hiện thuật toán.
  • B. Số lượng phép toán mà thuật toán thực hiện.
  • C. Lượng bộ nhớ máy tính mà thuật toán cần sử dụng.
  • D. Độ dài mã nguồn của thuật toán.

Câu 12: Cho đoạn mã giả sau:

```
for i from 1 to n:
print(i)
```

Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n)
  • B. O(1)
  • C. O(log n)
  • D. O(n^2)

Câu 13: Trong thuật toán sắp xếp chèn (Insertion Sort), trường hợp tốt nhất xảy ra khi nào?

  • A. Mảng đầu vào chứa các phần tử giống nhau.
  • B. Mảng đầu vào đã được sắp xếp.
  • C. Mảng đầu vào sắp xếp ngược.
  • D. Kích thước mảng đầu vào nhỏ.

Câu 14: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp gì?

  • A. Độ phức tạp tuyến tính.
  • B. Độ phức tạp logarit.
  • C. Độ phức tạp hằng số.
  • D. Độ phức tạp đa thức.

Câu 15: Để kiểm tra xem một số n có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của n, độ phức tạp thời gian của thuật toán này là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(√n)

Câu 16: Trong thuật toán Bubble Sort, trường hợp xấu nhất xảy ra khi nào?

  • A. Mảng đã được sắp xếp.
  • B. Mảng chứa các phần tử giống nhau.
  • C. Mảng sắp xếp theo thứ tự ngược lại.
  • D. Kích thước mảng nhỏ.

Câu 17: Độ phức tạp thời gian O(n log n) thường liên quan đến loại thuật toán nào?

  • A. Thuật toán tìm kiếm tuần tự.
  • B. Thuật toán sắp xếp hiệu quả (ví dụ: Merge Sort, Quick Sort).
  • C. Thuật toán duyệt đồ thị theo chiều rộng (BFS).
  • D. Thuật toán tính tổng các phần tử trong mảng.

Câu 18: So sánh độ phức tạp thời gian của thuật toán tìm kiếm tuần tự (Linear Search) và tìm kiếm nhị phân (Binary Search) trên một mảng đã sắp xếp. Thuật toán nào hiệu quả hơn khi kích thước mảng lớn?

  • A. Tìm kiếm tuần tự hiệu quả hơn.
  • B. Cả hai thuật toán có hiệu quả tương đương.
  • C. Tìm kiếm nhị phân hiệu quả hơn.
  • D. Hiệu quả phụ thuộc vào giá trị cần tìm.

Câu 19: Cho đoạn mã giả sau:

```
function Mystery(n):
count = 0
for i from 1 to n:
for j from 1 to i:
count = count + 1
return count
```
Độ phức tạp thời gian của hàm `Mystery(n)` là:

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 20: Một thuật toán có độ phức tạp O(n^3). Nếu thời gian chạy là 2 giây khi n = 100, thời gian chạy dự kiến là bao nhiêu khi n = 200?

  • A. 4 giây
  • B. 16 giây
  • C. 8 giây
  • D. 24 giây

Câu 21: Trong thuật toán sắp xếp nổi bọt (Bubble Sort) cải tiến, nếu trong một vòng lặp không có bất kỳ phép đổi chỗ nào xảy ra, điều đó có nghĩa là gì?

  • A. Thuật toán đã chạy sai.
  • B. Cần thêm một vòng lặp nữa.
  • C. Vẫn cần tiếp tục các vòng lặp tiếp theo để đảm bảo chắc chắn.
  • D. Mảng đã được sắp xếp hoàn toàn và thuật toán có thể kết thúc.

Câu 22: Độ phức tạp thời gian của phép toán truy cập một phần tử trong mảng (ví dụ: `array[index]`) là:

  • A. O(n)
  • B. O(1)
  • C. O(log n)
  • D. O(n log n)

Câu 23: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép đổi chỗ (swap) trong trường hợp xấu nhất khi sắp xếp mảng n phần tử là:

  • A. n - 1
  • B. log n
  • C. n(n - 1) / 2
  • D. n log n

Câu 24: Để tìm phần tử lớn nhất trong một mảng chưa sắp xếp gồm n phần tử, độ phức tạp thời gian tối thiểu là:

  • A. O(1)
  • B. O(log n)
  • C. O(n)
  • D. O(n log n)

Câu 25: Cho đoạn mã giả sau:

```
function RecursiveFunction(n):
if n <= 1: return else: RecursiveFunction(n/2) ``` Độ phức tạp thời gian của hàm `RecursiveFunction(n)` là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(1)

Câu 26: Trong các thuật toán sắp xếp, thuật toán nào có độ phức tạp thời gian trung bình là O(n log n) và thường được coi là một trong những thuật toán sắp xếp nhanh nhất?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Sắp xếp chọn (Selection Sort)
  • D. Sắp xếp nhanh (Quick Sort)

Câu 27: Khi nói về độ phức tạp thời gian của thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

  • A. Trường hợp tốt nhất (best case)
  • B. Trường hợp trung bình (average case)
  • C. Trường hợp xấu nhất (worst case)
  • D. Trường hợp điển hình (typical case)

Câu 28: Để tìm kiếm một cuốn sách trong thư viện không được sắp xếp theo bất kỳ thứ tự nào, phương pháp tìm kiếm nào sẽ phù hợp và có độ phức tạp thời gian là bao nhiêu?

  • A. Tìm kiếm tuần tự (Linear Search), độ phức tạp O(n).
  • B. Tìm kiếm nhị phân (Binary Search), độ phức tạp O(log n).
  • C. Tìm kiếm theo chiều rộng (BFS), độ phức tạp O(n).
  • D. Tìm kiếm theo chiều sâu (DFS), độ phức tạp O(n).

Câu 29: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

  • A. Thuật toán A (O(n^2))
  • B. Thuật toán B (O(n log n))
  • C. Cả hai thuật toán có tốc độ tương đương.
  • D. Không thể xác định nếu không biết kích thước đầu vào cụ thể.

Câu 30: Trong phân tích độ phức tạp thuật toán, ký hiệu "O" lớn (Big O notation) tập trung vào điều gì?

  • A. Thời gian thực hiện chính xác của thuật toán trên một máy tính cụ thể.
  • B. Số lượng phép toán cụ thể mà thuật toán thực hiện.
  • C. Lượng bộ nhớ chính xác mà thuật toán sử dụng.
  • D. Tốc độ tăng trưởng của thời gian thực hiện hoặc không gian bộ nhớ khi kích thước đầu vào tăng lên.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 1: Để tính tổng các số chẵn từ 0 đến n (n là số nguyên dương chẵn), bạn viết một chương trình duyệt qua từng số từ 0 đến n và kiểm tra tính chẵn lẻ. Nếu n tăng gấp đôi, thời gian thực hiện chương trình sẽ thay đổi như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 2: Cho đoạn mã giả sau:

```
for i from 1 to n:
for j from 1 to n:
thực hiện phép toán X
```

Độ phức tạp thời gian của đoạn mã trên là:

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 3: Thuật toán tìm kiếm nhị phân (Binary Search) hoạt động hiệu quả nhất trên dữ liệu nào sau đây?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 4: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau khi thực hiện xong vòng lặp ngoài đầu tiên, điều gì được đảm bảo?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 5: Độ phức tạp thời gian O(log n) thường gặp ở loại thuật toán nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 6: Cho hàm tính giai thừa số tự nhiên như sau:

```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```

Độ phức tạp thời gian của hàm `factorial(n)` là:

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 7: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán có hiệu quả nhất khi kích thước dữ liệu đầu vào tăng lên?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 8: Xét thuật toán sắp xếp chọn (Selection Sort). Số lượng phép so sánh trong trường hợp xấu nhất khi sắp xếp một mảng n phần tử là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 9: Một thuật toán có độ phức tạp thời gian O(n log n). Nếu thời gian chạy của thuật toán là 1 giây khi n = 1000, thời gian chạy dự kiến sẽ là bao nhiêu khi n = 10000?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 10: Trong thuật toán tìm kiếm tuần tự (Linear Search), trường hợp tốt nhất xảy ra khi nào?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 11: Độ phức tạp không gian (space complexity) của một thuật toán đề cập đến điều gì?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 12: Cho đoạn mã giả sau:

```
for i from 1 to n:
print(i)
```

Độ phức tạp thời gian của đoạn mã này là:

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 13: Trong thuật toán sắp xếp chèn (Insertion Sort), trường hợp tốt nhất xảy ra khi nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 14: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 15: Để kiểm tra xem một số n có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của n, độ phức tạp thời gian của thuật toán này là:

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 16: Trong thuật toán Bubble Sort, trường hợp xấu nhất xảy ra khi nào?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 17: Độ phức tạp thời gian O(n log n) thường liên quan đến loại thuật toán nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 18: So sánh độ phức tạp thời gian của thuật toán tìm kiếm tuần tự (Linear Search) và tìm kiếm nhị phân (Binary Search) trên một mảng đã sắp xếp. Thuật toán nào hiệu quả hơn khi kích thước mảng lớn?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 19: Cho đoạn mã giả sau:

```
function Mystery(n):
count = 0
for i from 1 to n:
for j from 1 to i:
count = count + 1
return count
```
Độ phức tạp thời gian của hàm `Mystery(n)` là:

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 20: Một thuật toán có độ phức tạp O(n^3). Nếu thời gian chạy là 2 giây khi n = 100, thời gian chạy dự kiến là bao nhiêu khi n = 200?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 21: Trong thuật toán sắp xếp nổi bọt (Bubble Sort) cải tiến, nếu trong một vòng lặp không có bất kỳ phép đổi chỗ nào xảy ra, điều đó có nghĩa là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 22: Độ phức tạp thời gian của phép toán truy cập một phần tử trong mảng (ví dụ: `array[index]`) là:

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 23: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép đổi chỗ (swap) trong trường hợp xấu nhất khi sắp xếp mảng n phần tử là:

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 24: Để tìm phần tử lớn nhất trong một mảng chưa sắp xếp gồm n phần tử, độ phức tạp thời gian tối thiểu là:

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 25: Cho đoạn mã giả sau:

```
function RecursiveFunction(n):
if n <= 1: return else: RecursiveFunction(n/2) ``` Độ phức tạp thời gian của hàm `RecursiveFunction(n)` là:

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 26: Trong các thuật toán sắp xếp, thuật toán nào có độ phức tạp thời gian trung bình là O(n log n) và thường được coi là một trong những thuật toán sắp xếp nhanh nhất?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 27: Khi nói về độ phức tạp thời gian của thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 28: Để tìm kiếm một cuốn sách trong thư viện không được sắp xếp theo bất kỳ thứ tự nào, phương pháp tìm kiếm nào sẽ phù hợp và có độ phức tạp thời gian là bao nhiêu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 29: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 2

Câu 30: Trong phân tích độ phức tạp thuật toán, ký hiệu 'O' lớn (Big O notation) tập trung vào điều gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 03 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, trường hợp nào sau đây thường được dùng để đánh giá hiệu suất thuật toán trong tình huống thực tế, khi dữ liệu đầu vào không có cấu trúc đặc biệt?

  • A. Trường hợp tốt nhất (Best case)
  • B. Trường hợp trung bình (Average case)
  • C. Trường hợp xấu nhất (Worst case)
  • D. Trường hợp lý tưởng

Câu 2: Độ phức tạp thời gian O(log n) thường xuất hiện trong loại thuật toán nào dưới đây?

  • A. Thuật toán tìm kiếm tuần tự
  • B. Thuật toán sắp xếp nổi bọt
  • C. Thuật toán tìm kiếm nhị phân
  • D. Thuật toán sắp xếp chọn

Câu 3: Xét đoạn mã giả sau:
```
for i = 1 to n:
for j = 1 to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(n log n)

Câu 4: Trong các ký hiệu độ phức tạp thời gian, ký hiệu nào biểu thị tốc độ tăng trưởng thời gian thực hiện thuật toán là chậm nhất khi kích thước đầu vào (n) tăng lên?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 5: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(n log n)

Câu 6: Để tìm kiếm một phần tử trong một mảng đã được sắp xếp, thuật toán nào sau đây có độ phức tạp thời gian tốt nhất?

  • A. Tìm kiếm tuần tự (Linear Search)
  • B. Tìm kiếm nhị phân (Binary Search)
  • C. Tìm kiếm theo chiều rộng (Breadth-First Search)
  • D. Tìm kiếm theo chiều sâu (Depth-First Search)

Câu 7: Xét hàm số sau:
```
def tinh_tong(n):
tong = 0
for i in range(1, n+1):
tong += i
return tong
```
Độ phức tạp thời gian của hàm `tinh_tong(n)` là:

  • A. O(n)
  • B. O(1)
  • C. O(log n)
  • D. O(n^2)

Câu 8: Nếu một thuật toán có độ phức tạp thời gian O(n log n), và thời gian thực hiện cho n = 1000 là 1 giây. Ước tính thời gian thực hiện cho n = 1000000 (1 triệu) là bao nhiêu?

  • A. 10 giây
  • B. 100 giây
  • C. Khoảng 1000 giây
  • D. 1 triệu giây

Câu 9: Trong thuật toán sắp xếp nhanh (QuickSort), độ phức tạp thời gian trung bình là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(n)
  • D. O(n log n)

Câu 10: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp:

  • A. Tuyệt đối
  • B. Hằng số
  • C. Tuyến tính
  • D. Logarit

Câu 11: Xét đoạn mã giả sau:
```
for i = 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n^2)
  • B. O(n)
  • C. O(n^3)
  • D. O(n log n)

Câu 12: Trong thuật toán sắp xếp trộn (Merge Sort), độ phức tạp thời gian trong trường hợp xấu nhất là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(n)
  • D. O(n log n)

Câu 13: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

  • A. Thuật toán A
  • B. Thuật toán B
  • C. Cả hai thuật toán có hiệu quả như nhau
  • D. Không thể xác định

Câu 14: Độ phức tạp thời gian của phép toán truy cập một phần tử trong mảng dựa trên chỉ số (index) là:

  • A. O(n)
  • B. O(1)
  • C. O(log n)
  • D. O(n log n)

Câu 15: Xét đoạn mã giả sau:
```
for i = 1 to n:
for j = i to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(n log n)

Câu 16: Trong phân tích độ phức tạp thuật toán, chúng ta thường bỏ qua các hệ số hằng số và các số hạng bậc thấp hơn vì:

  • A. Chúng không ảnh hưởng đến thời gian thực tế
  • B. Chúng làm cho phân tích phức tạp hơn
  • C. Chúng trở nên không đáng kể khi kích thước đầu vào (n) rất lớn
  • D. Chúng chỉ áp dụng cho trường hợp tốt nhất

Câu 17: Thuật toán nào sau đây có độ phức tạp thời gian O(n) trong trường hợp tốt nhất?

  • A. Sắp xếp nổi bọt (Bubble Sort) với cờ hiệu tối ưu hóa
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp nhanh (QuickSort)

Câu 18: Để kiểm tra xem một số có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của nó, độ phức tạp thời gian của thuật toán này là:

  • A. O(n)
  • B. O(√n)
  • C. O(log n)
  • D. O(n log n)

Câu 19: Nếu độ phức tạp thời gian của một thuật toán là O(2^n), điều này có nghĩa là:

  • A. Thời gian thực hiện tăng tuyến tính với n
  • B. Thời gian thực hiện không đổi khi n tăng
  • C. Thời gian thực hiện tăng theo logarit với n
  • D. Thời gian thực hiện tăng theo cấp số mũ với n

Câu 20: Trong thuật toán tìm kiếm nhị phân, sau mỗi bước lặp, kích thước của không gian tìm kiếm giảm đi khoảng:

  • A. 1/3
  • B. 1/4
  • C. 1/2
  • D. 2/3

Câu 21: Xét đoạn mã giả sau:
```
function mystery(arr):
n = length(arr)
count = 0
for i = 1 to n:
for j = 1 to n:
if arr[i] == arr[j]:
count = count + 1
return count
```
Hàm `mystery` có thể được mô tả là đếm cái gì trong mảng `arr` và độ phức tạp thời gian của nó là bao nhiêu?

  • A. Đếm số phần tử duy nhất, O(n)
  • B. Đếm số cặp phần tử bằng nhau, O(n^2)
  • C. Đếm số phần tử khác nhau, O(n log n)
  • D. Đếm tổng các phần tử, O(n)

Câu 22: Để sắp xếp một danh sách các số nguyên, thuật toán sắp xếp nào sau đây thường có hiệu suất tốt nhất trong thực tế (trung bình)?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp nhanh (QuickSort)

Câu 23: Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự trong trường hợp xấu nhất là O(n). Điều này có nghĩa là nếu kích thước dữ liệu đầu vào tăng gấp đôi, thời gian thực hiện thuật toán sẽ:

  • A. Tăng lên gấp đôi
  • B. Tăng lên gấp bốn
  • C. Không thay đổi
  • D. Giảm đi một nửa

Câu 24: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán có khả năng mở rộng (scale) tốt nhất với dữ liệu lớn?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 25: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp mảng đã gần như được sắp xếp?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp nhanh (QuickSort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp trộn (Merge Sort)

Câu 26: Độ phức tạp thời gian O(n^3) thường xuất hiện trong các thuật toán có bao nhiêu vòng lặp lồng nhau (trong trường hợp tổng quát)?

  • A. Một
  • B. Hai
  • C. Ba
  • D. Bốn

Câu 27: Giả sử một thuật toán có độ phức tạp O(n^2). Nếu thời gian thực hiện cho n = 100 là 0.1 giây, ước tính thời gian thực hiện cho n = 200 là bao nhiêu?

  • A. 0.2 giây
  • B. 0.4 giây
  • C. 0.8 giây
  • D. 1.6 giây

Câu 28: Trong thuật toán sắp xếp vun đống (Heap Sort), độ phức tạp thời gian là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(n)
  • D. O(n log n)

Câu 29: Độ phức tạp không gian (Space Complexity) của một thuật toán đo lường cái gì?

  • A. Thời gian thực hiện thuật toán
  • B. Số lượng phép toán thực hiện
  • C. Lượng bộ nhớ thuật toán sử dụng
  • D. Kích thước dữ liệu đầu vào

Câu 30: Để tìm giá trị lớn nhất trong một mảng chưa sắp xếp, thuật toán có độ phức tạp thời gian tối ưu nhất là:

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, trường hợp nào sau đây thường được dùng để đánh giá hiệu suất thuật toán trong tình huống thực tế, khi dữ liệu đầu vào không có cấu trúc đặc biệt?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 2: Độ phức tạp thời gian O(log n) thường xuất hiện trong loại thuật toán nào dưới đây?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 3: Xét đoạn mã giả sau:
```
for i = 1 to n:
for j = 1 to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 4: Trong các ký hiệu độ phức tạp thời gian, ký hiệu nào biểu thị tốc độ tăng trưởng thời gian thực hiện thuật toán là chậm nhất khi kích thước đầu vào (n) tăng lên?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 5: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là:

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 6: Để tìm kiếm một phần tử trong một mảng đã được sắp xếp, thuật toán nào sau đây có độ phức tạp thời gian tốt nhất?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 7: Xét hàm số sau:
```
def tinh_tong(n):
tong = 0
for i in range(1, n+1):
tong += i
return tong
```
Độ phức tạp thời gian của hàm `tinh_tong(n)` là:

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 8: Nếu một thuật toán có độ phức tạp thời gian O(n log n), và thời gian thực hiện cho n = 1000 là 1 giây. Ước tính thời gian thực hiện cho n = 1000000 (1 triệu) là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 9: Trong thuật toán sắp xếp nhanh (QuickSort), độ phức tạp thời gian trung bình là:

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 10: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp:

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 11: Xét đoạn mã giả sau:
```
for i = 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 12: Trong thuật toán sắp xếp trộn (Merge Sort), độ phức tạp thời gian trong trường hợp xấu nhất là:

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 13: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 14: Độ phức tạp thời gian của phép toán truy cập một phần tử trong mảng dựa trên chỉ số (index) là:

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 15: Xét đoạn mã giả sau:
```
for i = 1 to n:
for j = i to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là:

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 16: Trong phân tích độ phức tạp thuật toán, chúng ta thường bỏ qua các hệ số hằng số và các số hạng bậc thấp hơn vì:

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 17: Thuật toán nào sau đây có độ phức tạp thời gian O(n) trong trường hợp tốt nhất?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 18: Để kiểm tra xem một số có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của nó, độ phức tạp thời gian của thuật toán này là:

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 19: Nếu độ phức tạp thời gian của một thuật toán là O(2^n), điều này có nghĩa là:

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 20: Trong thuật toán tìm kiếm nhị phân, sau mỗi bước lặp, kích thước của không gian tìm kiếm giảm đi khoảng:

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 21: Xét đoạn mã giả sau:
```
function mystery(arr):
n = length(arr)
count = 0
for i = 1 to n:
for j = 1 to n:
if arr[i] == arr[j]:
count = count + 1
return count
```
Hàm `mystery` có thể được mô tả là đếm cái gì trong mảng `arr` và độ phức tạp thời gian của nó là bao nhiêu?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 22: Để sắp xếp một danh sách các số nguyên, thuật toán sắp xếp nào sau đây thường có hiệu suất tốt nhất trong thực tế (trung bình)?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 23: Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự trong trường hợp xấu nhất là O(n). Điều này có nghĩa là nếu kích thước dữ liệu đầu vào tăng gấp đôi, thời gian thực hiện thuật toán sẽ:

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 24: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán có khả năng mở rộng (scale) tốt nhất với dữ liệu lớn?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 25: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp mảng đã gần như được sắp xếp?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 26: Độ phức tạp thời gian O(n^3) thường xuất hiện trong các thuật toán có bao nhiêu vòng lặp lồng nhau (trong trường hợp tổng quát)?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 27: Giả sử một thuật toán có độ phức tạp O(n^2). Nếu thời gian thực hiện cho n = 100 là 0.1 giây, ước tính thời gian thực hiện cho n = 200 là bao nhiêu?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 28: Trong thuật toán sắp xếp vun đống (Heap Sort), độ phức tạp thời gian là:

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 29: Độ phức tạp không gian (Space Complexity) của một thuật toán đo lường cái gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 3

Câu 30: Để tìm giá trị lớn nhất trong một mảng chưa sắp xếp, thuật toán có độ phức tạp thời gian tối ưu nhất là:

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Độ phức tạp thời gian của một thuật toán được định nghĩa là:

  • A. Lượng bộ nhớ máy tính mà thuật toán sử dụng.
  • B. Hàm số mô tả thời gian chạy của thuật toán theo kích thước dữ liệu đầu vào.
  • C. Số lượng dòng code trong chương trình.
  • D. Thời gian thực tế chạy thuật toán trên một máy tính cụ thể.

Câu 2: Ký hiệu Big O dùng để mô tả điều gì về độ phức tạp của thuật toán?

  • A. Độ phức tạp trung bình của thuật toán.
  • B. Độ phức tạp tốt nhất của thuật toán.
  • C. Độ phức tạp trong trường hợp xấu nhất của thuật toán.
  • D. Độ phức tạp trong trường hợp phổ biến nhất của thuật toán.

Câu 3: Thuật toán nào sau đây có độ phức tạp thời gian là O(1)?

  • A. Truy cập một phần tử của mảng bằng chỉ số.
  • B. Tìm kiếm một phần tử trong mảng chưa sắp xếp.
  • C. Sắp xếp một mảng bằng thuật toán Bubble Sort.
  • D. Tìm kiếm nhị phân trong một mảng đã sắp xếp.

Câu 4: Độ phức tạp thời gian O(n) còn được gọi là:

  • A. Độ phức tạp logarit.
  • B. Độ phức tạp tuyến tính.
  • C. Độ phức tạp bậc hai.
  • D. Độ phức tạp hằng số.

Câu 5: Thuật toán tìm kiếm tuần tự (Linear Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n^2)

Câu 6: Thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là:

  • A. O(n)
  • B. O(n log n)
  • C. O(log n)
  • D. O(n^2)

Câu 7: Thuật toán tìm kiếm nhị phân (Binary Search) yêu cầu dữ liệu đầu vào phải như thế nào để đạt hiệu quả?

  • A. Dữ liệu phải là số nguyên.
  • B. Dữ liệu phải là duy nhất.
  • C. Dữ liệu phải được sắp xếp.
  • D. Dữ liệu phải có kích thước nhỏ.

Câu 8: Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (Binary Search) trong trường hợp xấu nhất là:

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n^2)

Câu 9: Đoạn mã sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
for j in range(n):
print(i, j)
```

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(n^2)

Câu 10: Độ phức tạp thời gian O(n log n) thường xuất hiện ở thuật toán sắp xếp nào?

  • A. Bubble Sort
  • B. Merge Sort
  • C. Selection Sort
  • D. Linear Sort

Câu 11: Khi kích thước dữ liệu đầu vào tăng gấp đôi, thuật toán có độ phức tạp O(n) sẽ có thời gian thực hiện tăng lên khoảng:

  • A. Không đổi
  • B. Gấp đôi
  • C. Gấp bốn
  • D. Tăng theo hàm mũ

Câu 12: Khi kích thước dữ liệu đầu vào tăng gấp đôi, thuật toán có độ phức tạp O(n^2) sẽ có thời gian thực hiện tăng lên khoảng:

  • A. Gấp đôi
  • B. Gấp ba
  • C. Gấp bốn
  • D. Tăng theo hàm logarit

Câu 13: Trong thực tế, khi lựa chọn thuật toán, độ phức tạp thời gian quan trọng hơn yếu tố nào sau đây?

  • A. Hằng số thời gian thực tế và yếu tố phần cứng.
  • B. Độ phức tạp không gian.
  • C. Tính dễ hiểu của thuật toán.
  • D. Khả năng tái sử dụng của code.

Câu 14: Để tìm kiếm một phần tử trong danh sách không sắp xếp lớn, thuật toán nào có độ phức tạp thời gian tốt nhất?

  • A. Tìm kiếm nhị phân (Binary Search)
  • B. Tìm kiếm tuần tự (Linear Search)
  • C. Cả hai đều tương đương
  • D. Không có thuật toán nào phù hợp

Câu 15: Để tìm kiếm một phần tử trong danh sách đã sắp xếp lớn, thuật toán nào có độ phức tạp thời gian tốt nhất?

  • A. Tìm kiếm nhị phân (Binary Search)
  • B. Tìm kiếm tuần tự (Linear Search)
  • C. Cả hai đều tương đương
  • D. Không có thuật toán nào phù hợp

Câu 16: Độ phức tạp thời gian của thuật toán sắp xếp chèn (Insertion Sort) trong trường hợp tốt nhất (mảng đã sắp xếp) là:

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(log n)

Câu 17: Độ phức tạp thời gian của thuật toán sắp xếp nhanh (Quick Sort) trung bình là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(n log n)
  • D. O(log n)

Câu 18: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) trong trường hợp xấu nhất là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(n log n)
  • D. O(log n)

Câu 19: Đoạn mã sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
if i % 2 == 0:
for j in range(1000):
print(i, j)
```

  • A. O(n)
  • B. O(n^2)
  • C. O(1000n)
  • D. O(n log n)

Câu 20: Độ phức tạp thời gian nào sau đây là tốt nhất khi kích thước dữ liệu đầu vào rất lớn?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 21: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất khi kích thước dữ liệu đầu vào rất lớn?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 22: Trong phân tích độ phức tạp thời gian, chúng ta thường bỏ qua yếu tố nào?

  • A. Số lượng vòng lặp.
  • B. Kích thước dữ liệu đầu vào.
  • C. Hằng số nhân và các số hạng bậc thấp.
  • D. Các phép toán cơ bản (so sánh, gán, cộng).

Câu 23: Phát biểu nào sau đây là đúng về độ phức tạp thời gian?

  • A. Độ phức tạp thời gian phụ thuộc vào ngôn ngữ lập trình sử dụng.
  • B. Độ phức tạp thời gian là một ước tính lý thuyết về tốc độ tăng trưởng thời gian chạy theo kích thước đầu vào.
  • C. Độ phức tạp thời gian luôn đo lường thời gian thực tế chạy chương trình.
  • D. Độ phức tạp thời gian không quan trọng khi kích thước dữ liệu nhỏ.

Câu 24: Cho đoạn mã sau, giả sử phép toán `a = a + 1` mất 1 đơn vị thời gian. Độ phức tạp thời gian của đoạn mã là gì?
```
a = 0
for i in range(n):
a = a + 1
```

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n^2)

Câu 25: Cho đoạn mã sau, độ phức tạp thời gian là gì?
```
for i in range(n):
for j in range(i):
print(i, j)
```

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(n^2)

Câu 26: Nếu một thuật toán có độ phức tạp O(n^3), và với n=1000 mất 1 giây để chạy, thì với n=2000 sẽ mất khoảng bao lâu?

  • A. 2 giây
  • B. 4 giây
  • C. 6 giây
  • D. 8 giây

Câu 27: Để sắp xếp một mảng lớn, thuật toán sắp xếp nào thường được ưu tiên sử dụng vì có độ phức tạp thời gian tốt trong trường hợp trung bình?

  • A. Bubble Sort
  • B. Quick Sort
  • C. Selection Sort
  • D. Insertion Sort

Câu 28: Độ phức tạp thời gian của thuật toán có vai trò quan trọng nhất khi nào?

  • A. Khi dữ liệu đầu vào nhỏ.
  • B. Khi thuật toán đơn giản.
  • C. Khi dữ liệu đầu vào rất lớn và cần tối ưu hiệu suất.
  • D. Khi sử dụng ngôn ngữ lập trình bậc cao.

Câu 29: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thời gian chạy tăng chậm nhất khi kích thước đầu vào tăng lên?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 30: Yếu tố nào sau đây không ảnh hưởng trực tiếp đến độ phức tạp thời gian của thuật toán?

  • A. Kích thước dữ liệu đầu vào.
  • B. Số lượng phép toán cơ bản.
  • C. Cấu trúc vòng lặp trong thuật toán.
  • D. Tên biến được sử dụng trong code.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 1: Độ phức tạp thời gian của một thuật toán được định nghĩa là:

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 2: Ký hiệu Big O dùng để mô tả điều gì về độ phức tạp của thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 3: Thuật toán nào sau đây có độ phức tạp thời gian là O(1)?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 4: Độ phức tạp thời gian O(n) còn được gọi là:

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 5: Thuật toán tìm kiếm tuần tự (Linear Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 6: Thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là:

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 7: Thuật toán tìm kiếm nhị phân (Binary Search) yêu cầu dữ liệu đầu vào phải như thế nào để đạt hiệu quả?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 8: Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (Binary Search) trong trường hợp xấu nhất là:

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 9: Đoạn mã sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
for j in range(n):
print(i, j)
```

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 10: Độ phức tạp thời gian O(n log n) thường xuất hiện ở thuật toán sắp xếp nào?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 11: Khi kích thước dữ liệu đầu vào tăng gấp đôi, thuật toán có độ phức tạp O(n) sẽ có thời gian thực hiện tăng lên khoảng:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 12: Khi kích thước dữ liệu đầu vào tăng gấp đôi, thuật toán có độ phức tạp O(n^2) sẽ có thời gian thực hiện tăng lên khoảng:

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 13: Trong thực tế, khi lựa chọn thuật toán, độ phức tạp thời gian quan trọng hơn yếu tố nào sau đây?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 14: Để tìm kiếm một phần tử trong danh sách *không* sắp xếp lớn, thuật toán nào có độ phức tạp thời gian tốt nhất?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 15: Để tìm kiếm một phần tử trong danh sách *đã* sắp xếp lớn, thuật toán nào có độ phức tạp thời gian tốt nhất?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 16: Độ phức tạp thời gian của thuật toán sắp xếp chèn (Insertion Sort) trong trường hợp tốt nhất (mảng đã sắp xếp) là:

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 17: Độ phức tạp thời gian của thuật toán sắp xếp nhanh (Quick Sort) trung bình là:

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 18: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) trong trường hợp xấu nhất là:

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 19: Đoạn mã sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
if i % 2 == 0:
for j in range(1000):
print(i, j)
```

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 20: Độ phức tạp thời gian nào sau đây là tốt nhất khi kích thước dữ liệu đầu vào rất lớn?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 21: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất khi kích thước dữ liệu đầu vào rất lớn?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 22: Trong phân tích độ phức tạp thời gian, chúng ta thường bỏ qua yếu tố nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 23: Phát biểu nào sau đây là đúng về độ phức tạp thời gian?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 24: Cho đoạn mã sau, giả sử phép toán `a = a + 1` mất 1 đơn vị thời gian. Độ phức tạp thời gian của đoạn mã là gì?
```
a = 0
for i in range(n):
a = a + 1
```

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 25: Cho đoạn mã sau, độ phức tạp thời gian là gì?
```
for i in range(n):
for j in range(i):
print(i, j)
```

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 26: Nếu một thuật toán có độ phức tạp O(n^3), và với n=1000 mất 1 giây để chạy, thì với n=2000 sẽ mất khoảng bao lâu?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 27: Để sắp xếp một mảng lớn, thuật toán sắp xếp nào thường được ưu tiên sử dụng vì có độ phức tạp thời gian tốt trong trường hợp trung bình?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 28: Độ phức tạp thời gian của thuật toán có vai trò quan trọng nhất khi nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 29: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thời gian chạy tăng chậm nhất khi kích thước đầu vào tăng lên?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 4

Câu 30: Yếu tố nào sau đây *không* ảnh hưởng trực tiếp đến độ phức tạp thời gian của thuật toán?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong một chương trình quản lý danh bạ, bạn cần tìm kiếm thông tin liên lạc của một người dùng dựa trên tên của họ. Nếu danh bạ được lưu trữ dưới dạng một danh sách không có thứ tự, thuật toán tìm kiếm nào sẽ phù hợp nhất và độ phức tạp thời gian của nó là bao nhiêu trong trường hợp xấu nhất?

  • A. Tìm kiếm nhị phân, O(log n)
  • B. Tìm kiếm tuần tự, O(n)
  • C. Sắp xếp trộn, O(n log n)
  • D. Tìm kiếm theo chiều rộng, O(1)

Câu 2: Xét thuật toán sắp xếp chèn (Insertion Sort). Trong trường hợp dữ liệu đầu vào là một mảng đã được sắp xếp theo thứ tự tăng dần, độ phức tạp thời gian của thuật toán này là bao nhiêu?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 3: Bạn có hai thuật toán, thuật toán A có độ phức tạp O(n log n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào n lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

  • A. Thuật toán A (O(n log n))
  • B. Thuật toán B (O(n^2))
  • C. Cả hai thuật toán hiệu quả như nhau
  • D. Không thể xác định nếu không biết giá trị cụ thể của n

Câu 4: Một thuật toán có độ phức tạp thời gian O(2^n). Nếu thời gian chạy của thuật toán là 1 giây với n = 20, thời gian chạy dự kiến sẽ là bao nhiêu giây khi n = 25?

  • A. 5 giây
  • B. 10 giây
  • C. 32 giây
  • D. 64 giây

Câu 5: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
for j in range(i, n):
print(i, j)
```

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(log n)

Câu 6: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất để sắp xếp một mảng có n phần tử là bao nhiêu?

  • A. n - 1
  • B. n(n - 1) / 2
  • C. n log n
  • D. log n

Câu 7: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian O(log n). Điều kiện tiên quyết để áp dụng thuật toán này là gì?

  • A. Dữ liệu phải là số nguyên
  • B. Dữ liệu không được chứa giá trị trùng lặp
  • C. Dữ liệu phải được sắp xếp
  • D. Kích thước dữ liệu phải nhỏ

Câu 8: Một thuật toán có độ phức tạp O(n). Nếu thời gian chạy là 0.1 giây với n = 1000, thời gian chạy dự kiến là bao nhiêu giây khi n = 10000?

  • A. 0.1 giây
  • B. 0.5 giây
  • C. 0.8 giây
  • D. 1 giây

Câu 9: Độ phức tạp không gian (Space Complexity) của một thuật toán đề cập đến điều gì?

  • A. Thời gian thực hiện thuật toán
  • B. Lượng bộ nhớ thuật toán sử dụng
  • C. Số lượng dòng code của thuật toán
  • D. Độ dễ hiểu của thuật toán

Câu 10: Trong các độ phức tạp sau, độ phức tạp nào biểu thị thuật toán có thời gian chạy tăng chậm nhất khi kích thước đầu vào tăng lên?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 11: Xét thuật toán tìm kiếm tuyến tính (Linear Search) trong một mảng có n phần tử. Nếu phần tử cần tìm nằm ở vị trí cuối cùng của mảng, số phép so sánh cần thực hiện là bao nhiêu?

  • A. 1
  • B. log n
  • C. n
  • D. n^2

Câu 12: Một thuật toán có độ phức tạp O(1). Điều này có nghĩa là gì về thời gian chạy của thuật toán khi kích thước đầu vào thay đổi?

  • A. Thời gian chạy tăng tuyến tính với kích thước đầu vào.
  • B. Thời gian chạy tăng theo logarit của kích thước đầu vào.
  • C. Thời gian chạy tăng theo bình phương của kích thước đầu vào.
  • D. Thời gian chạy không đổi, không phụ thuộc vào kích thước đầu vào.

Câu 13: Trong thuật toán sắp xếp chọn (Selection Sort), sau khi kết thúc vòng lặp thứ i, điều gì đảm bảo về mảng?

  • A. Toàn bộ mảng đã được sắp xếp.
  • B. i phần tử đầu tiên đã được sắp xếp đúng vị trí.
  • C. i phần tử cuối cùng đã được sắp xếp đúng vị trí.
  • D. Mảng đã được sắp xếp một nửa.

Câu 14: Độ phức tạp thời gian nào sau đây là tốt nhất cho một thuật toán sắp xếp tổng quát trong trường hợp trung bình?

  • A. O(n^2)
  • B. O(n!)
  • C. O(n log n)
  • D. O(2^n)

Câu 15: Hàm đệ quy tính số Fibonacci có công thức F(n) = F(n-1) + F(n-2) có độ phức tạp thời gian là bao nhiêu nếu không sử dụng kỹ thuật tối ưu hóa (memoization)?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(2^n)

Câu 16: Trong phân tích độ phức tạp thuật toán, ký hiệu "O" lớn (Big O notation) thường tập trung vào điều gì?

  • A. Thời gian chạy chính xác của thuật toán
  • B. Tốc độ tăng trưởng của thời gian chạy khi kích thước đầu vào tăng
  • C. Bộ nhớ sử dụng chính xác của thuật toán
  • D. Số lượng dòng code trong thuật toán

Câu 17: Cho đoạn mã sau:
```
for i in range(n):
for j in range(1000):
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n)
  • B. O(n^2)
  • C. O(1000n)
  • D. O(n log n)

Câu 18: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp xấu nhất để tìm kiếm một phần tử trong mảng đã sắp xếp?

  • A. Tìm kiếm tuần tự (Linear Search)
  • B. Tìm kiếm nhị phân (Binary Search)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp chèn (Insertion Sort)

Câu 19: Để kiểm tra xem một số n có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của n, độ phức tạp thời gian của thuật toán này là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(√n)
  • D. O(n log n)

Câu 20: Giả sử bạn có một thuật toán với độ phức tạp O(n^3). Nếu bạn tăng kích thước đầu vào lên gấp đôi, thời gian chạy của thuật toán sẽ tăng lên khoảng bao nhiêu lần?

  • A. 2 lần
  • B. 4 lần
  • C. 6 lần
  • D. 8 lần

Câu 21: Xét thuật toán sắp xếp trộn (Merge Sort). Độ phức tạp thời gian của thuật toán này trong trường hợp xấu nhất là bao nhiêu?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 22: Trong các thuật toán sắp xếp O(n^2) (ví dụ: Bubble Sort, Selection Sort, Insertion Sort), thuật toán nào thường được coi là hiệu quả hơn trong thực tế với mảng kích thước nhỏ và gần như đã sắp xếp?

  • A. Bubble Sort
  • B. Selection Sort
  • C. Insertion Sort
  • D. Cả ba thuật toán hiệu quả như nhau

Câu 23: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
i = 1
while i < n: i = i * 2 ```

  • A. O(n)
  • B. O(n^2)
  • C. O(√n)
  • D. O(log n)

Câu 24: Độ phức tạp thời gian của thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) trên một đồ thị biểu diễn bằng danh sách kề là bao nhiêu, trong đó V là số đỉnh và E là số cạnh?

  • A. O(V + E)
  • B. O(V * E)
  • C. O(V^2)
  • D. O(E^2)

Câu 25: Trong thuật toán Quick Sort, độ phức tạp thời gian trung bình là O(n log n), nhưng độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?

  • A. O(log n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(2^n)

Câu 26: Để tính tổng của tất cả các phần tử trong một mảng có n phần tử, độ phức tạp thời gian tối thiểu là bao nhiêu?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 27: Một thuật toán có độ phức tạp O(log n). Nếu thuật toán mất 10ms để xử lý 1000 phần tử, thì dự kiến mất bao lâu để xử lý 1 triệu phần tử (1000000)?

  • A. Khoảng 20ms
  • B. Khoảng 100ms
  • C. Khoảng 1 giây
  • D. Khoảng 10 giây

Câu 28: Trong thuật toán sắp xếp Heap Sort, độ phức tạp thời gian xây dựng heap ban đầu (build heap) là bao nhiêu?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 29: Để tìm giá trị lớn nhất trong một mảng không sắp xếp có n phần tử, độ phức tạp thời gian là bao nhiêu?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(1)

Câu 30: Khi phân tích độ phức tạp thời gian thực tế của một thuật toán, yếu tố nào sau đây thường bị bỏ qua trong ký hiệu Big O?

  • A. Kích thước đầu vào
  • B. Các phép toán cơ bản
  • C. Hằng số nhân và các hạng tử bậc thấp
  • D. Trường hợp xấu nhất của thuật toán

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 1: Trong một chương trình quản lý danh bạ, bạn cần tìm kiếm thông tin liên lạc của một người dùng dựa trên tên của họ. Nếu danh bạ được lưu trữ dưới dạng một danh sách không có thứ tự, thuật toán tìm kiếm nào sẽ phù hợp nhất và độ phức tạp thời gian của nó là bao nhiêu trong trường hợp xấu nhất?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 2: Xét thuật toán sắp xếp chèn (Insertion Sort). Trong trường hợp dữ liệu đầu vào là một mảng đã được sắp xếp theo thứ tự tăng dần, độ phức tạp thời gian của thuật toán này là bao nhiêu?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 3: Bạn có hai thuật toán, thuật toán A có độ phức tạp O(n log n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào n lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 4: Một thuật toán có độ phức tạp thời gian O(2^n). Nếu thời gian chạy của thuật toán là 1 giây với n = 20, thời gian chạy dự kiến sẽ là bao nhiêu giây khi n = 25?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 5: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
for i in range(n):
for j in range(i, n):
print(i, j)
```

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 6: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất để sắp xếp một mảng có n phần tử là bao nhiêu?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 7: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian O(log n). Điều kiện tiên quyết để áp dụng thuật toán này là gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 8: Một thuật toán có độ phức tạp O(n). Nếu thời gian chạy là 0.1 giây với n = 1000, thời gian chạy dự kiến là bao nhiêu giây khi n = 10000?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 9: Độ phức tạp không gian (Space Complexity) của một thuật toán đề cập đến điều gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 10: Trong các độ phức tạp sau, độ phức tạp nào biểu thị thuật toán có thời gian chạy tăng chậm nhất khi kích thước đầu vào tăng lên?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 11: Xét thuật toán tìm kiếm tuyến tính (Linear Search) trong một mảng có n phần tử. Nếu phần tử cần tìm nằm ở vị trí cuối cùng của mảng, số phép so sánh cần thực hiện là bao nhiêu?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 12: Một thuật toán có độ phức tạp O(1). Điều này có nghĩa là gì về thời gian chạy của thuật toán khi kích thước đầu vào thay đổi?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 13: Trong thuật toán sắp xếp chọn (Selection Sort), sau khi kết thúc vòng lặp thứ i, điều gì đảm bảo về mảng?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 14: Độ phức tạp thời gian nào sau đây là tốt nhất cho một thuật toán sắp xếp tổng quát trong trường hợp trung bình?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 15: Hàm đệ quy tính số Fibonacci có công thức F(n) = F(n-1) + F(n-2) có độ phức tạp thời gian là bao nhiêu nếu không sử dụng kỹ thuật tối ưu hóa (memoization)?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 16: Trong phân tích độ phức tạp thuật toán, ký hiệu 'O' lớn (Big O notation) thường tập trung vào điều gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 17: Cho đoạn mã sau:
```
for i in range(n):
for j in range(1000):
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 18: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp xấu nhất để tìm kiếm một phần tử trong mảng đã sắp xếp?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 19: Để kiểm tra xem một số n có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của n, độ phức tạp thời gian của thuật toán này là bao nhiêu?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 20: Giả sử bạn có một thuật toán với độ phức tạp O(n^3). Nếu bạn tăng kích thước đầu vào lên gấp đôi, thời gian chạy của thuật toán sẽ tăng lên khoảng bao nhiêu lần?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 21: Xét thuật toán sắp xếp trộn (Merge Sort). Độ phức tạp thời gian của thuật toán này trong trường hợp xấu nhất là bao nhiêu?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 22: Trong các thuật toán sắp xếp O(n^2) (ví dụ: Bubble Sort, Selection Sort, Insertion Sort), thuật toán nào thường được coi là hiệu quả hơn trong thực tế với mảng kích thước nhỏ và gần như đã sắp xếp?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 23: Đoạn mã chương trình sau có độ phức tạp thời gian là bao nhiêu?
```
i = 1
while i < n: i = i * 2 ```

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 24: Độ phức tạp thời gian của thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) trên một đồ thị biểu diễn bằng danh sách kề là bao nhiêu, trong đó V là số đỉnh và E là số cạnh?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 25: Trong thuật toán Quick Sort, độ phức tạp thời gian trung bình là O(n log n), nhưng độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 26: Để tính tổng của tất cả các phần tử trong một mảng có n phần tử, độ phức tạp thời gian tối thiểu là bao nhiêu?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 27: Một thuật toán có độ phức tạp O(log n). Nếu thuật toán mất 10ms để xử lý 1000 phần tử, thì dự kiến mất bao lâu để xử lý 1 triệu phần tử (1000000)?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 28: Trong thuật toán sắp xếp Heap Sort, độ phức tạp thời gian xây dựng heap ban đầu (build heap) là bao nhiêu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 29: Để tìm giá trị lớn nhất trong một mảng không sắp xếp có n phần tử, độ phức tạp thời gian là bao nhiêu?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 5

Câu 30: Khi phân tích độ phức tạp thời gian thực tế của một thuật toán, yếu tố nào sau đây thường bị bỏ qua trong ký hiệu Big O?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 06 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Độ phức tạp thời gian nào sau đây mô tả tốt nhất thời gian chạy của thuật toán tìm kiếm nhị phân trong trường hợp xấu nhất?

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(1)

Câu 2: Xét đoạn mã giả sau:

```
for i = 1 to n:
for j = 1 to n:
print(i * j)
```

Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(n log n)

Câu 3: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(n log n)

Câu 4: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian tốt nhất?

  • A. Khi mảng đã được sắp xếp
  • B. Khi mảng sắp xếp ngược
  • C. Khi mảng chứa nhiều phần tử trùng lặp
  • D. Độ phức tạp tốt nhất của Bubble Sort không đổi trong mọi trường hợp

Câu 5: Cho một thuật toán có độ phức tạp O(n log n). Nếu thời gian chạy của thuật toán là 1 giây với n = 1000, thời gian chạy dự kiến sẽ là bao nhiêu với n = 10000?

  • A. Khoảng 1 giây
  • B. Khoảng 10 giây
  • C. Khoảng 13.3 giây
  • D. Khoảng 100 giây

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp gì?

  • A. Độ phức tạp tuyến tính
  • B. Độ phức tạp hằng số
  • C. Độ phức tạp logarit
  • D. Độ phức tạp bậc hai

Câu 7: Trong các độ phức tạp sau, độ phức tạp nào biểu thị thuật toán hiệu quả nhất về thời gian khi n rất lớn?

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 8: Xét thuật toán tìm kiếm tuần tự trên một mảng chưa sắp xếp. Trong trường hợp trung bình, độ phức tạp thời gian là bao nhiêu?

  • A. O(1)
  • B. O(n)
  • C. O(log n)
  • D. O(n^2)

Câu 9: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) là:

  • A. O(n^2)
  • B. O(n^3)
  • C. O(log n)
  • D. O(n log n)

Câu 10: Khi nói về độ phức tạp thời gian, chúng ta thường quan tâm đến trường hợp nào nhất?

  • A. Trường hợp tốt nhất
  • B. Trường hợp trung bình
  • C. Trường hợp xấu nhất
  • D. Cả ba trường hợp đều quan trọng như nhau

Câu 11: Đoạn mã giả sau có độ phức tạp thời gian là bao nhiêu?

```
sum = 0
for i = 1 to n:
sum = sum + 1
for j = 1 to n:
sum = sum + 1
```

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(2n)

Câu 12: Độ phức tạp O(n!) thường xuất hiện trong các thuật toán nào?

  • A. Thuật toán sắp xếp
  • B. Thuật toán tìm kiếm
  • C. Thuật toán duyệt toàn bộ (brute-force)
  • D. Thuật toán chia để trị

Câu 13: Trong thuật toán Selection Sort, số lượng phép so sánh chính xác là bao nhiêu trong trường hợp xấu nhất với mảng có n phần tử?

  • A. n
  • B. n * (n - 1) / 2
  • C. n log n
  • D. 2n

Câu 14: Giả sử bạn có hai thuật toán, thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với giá trị n lớn, thuật toán nào chạy nhanh hơn?

  • A. Thuật toán A
  • B. Thuật toán B
  • C. Cả hai thuật toán chạy nhanh như nhau
  • D. Không thể xác định nếu không biết giá trị cụ thể của n

Câu 15: Độ phức tạp thời gian giúp chúng ta đánh giá điều gì của một thuật toán?

  • A. Bộ nhớ sử dụng
  • B. Độ chính xác của kết quả
  • C. Thời gian chạy khi kích thước đầu vào tăng
  • D. Sự dễ dàng lập trình

Câu 16: Cho đoạn mã giả sau:

```
for i = 1 to n:
j = 1
while j < n: j = j * 2 ``` Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n^2)
  • B. O(n)
  • C. O(log n)
  • D. O(n log n)

Câu 17: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n) trong trường hợp tốt nhất?

  • A. Selection Sort
  • B. Bubble Sort
  • C. Merge Sort
  • D. Quick Sort

Câu 18: Nếu một thuật toán có độ phức tạp O(n^3), và thời gian chạy là 2 giây với n=100, thời gian chạy dự kiến sẽ là bao nhiêu với n=200?

  • A. 4 giây
  • B. 8 giây
  • C. 12 giây
  • D. 16 giây

Câu 19: Hàm băm (hash function) lý tưởng có độ phức tạp thời gian để tìm kiếm trung bình là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(1)

Câu 20: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất khi n rất lớn?

  • A. O(2^n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(n)

Câu 21: Trong phân tích độ phức tạp thời gian, ký hiệu "O" lớn (Big O) thường biểu thị điều gì?

  • A. Thời gian chạy trung bình
  • B. Giới hạn trên của thời gian chạy
  • C. Thời gian chạy tốt nhất
  • D. Thời gian chạy chính xác

Câu 22: Để sắp xếp một mảng lớn, thuật toán sắp xếp nhanh (Quick Sort) thường được ưa chuộng hơn sắp xếp chọn (Selection Sort) vì lý do chính nào?

  • A. Độ phức tạp thời gian trung bình của Quick Sort tốt hơn
  • B. Quick Sort dễ cài đặt hơn
  • C. Quick Sort sử dụng ít bộ nhớ hơn
  • D. Selection Sort không ổn định

Câu 23: Nếu một thuật toán có độ phức tạp O(log n), điều gì xảy ra với thời gian chạy khi kích thước đầu vào n tăng gấp đôi?

  • A. Thời gian chạy tăng gấp đôi
  • B. Thời gian chạy tăng lên gấp bốn
  • C. Thời gian chạy tăng lên một lượng nhỏ
  • D. Thời gian chạy không đổi

Câu 24: Xét đoạn mã giả sau:

```
for i = 1 to n:
for j = i to n:
print(i + j)
```

Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(n log n)

Câu 25: Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết để thuật toán hoạt động hiệu quả là gì?

  • A. Mảng phải được sắp xếp
  • B. Mảng phải có kích thước chẵn
  • C. Mảng phải chứa các số nguyên dương
  • D. Không có điều kiện tiên quyết cụ thể

Câu 26: Độ phức tạp không gian (space complexity) của một thuật toán đo lường điều gì?

  • A. Thời gian chạy thuật toán
  • B. Số lượng dòng code trong thuật toán
  • C. Lượng bộ nhớ thuật toán sử dụng
  • D. Độ dễ đọc của thuật toán

Câu 27: Một thuật toán với độ phức tạp O(n) được coi là tuyến tính vì lý do nào?

  • A. Thời gian chạy tăng tỉ lệ tuyến tính với kích thước đầu vào
  • B. Thuật toán sử dụng một vòng lặp
  • C. Thuật toán dễ dàng cài đặt
  • D. Kết quả luôn chính xác

Câu 28: Trong các thuật toán sắp xếp, thuật toán nào thường có độ phức tạp thời gian xấu nhất là O(n^2)?

  • A. Merge Sort
  • B. Quick Sort
  • C. Heap Sort
  • D. Bubble Sort

Câu 29: Khi phân tích độ phức tạp thời gian, chúng ta bỏ qua các hằng số nhân và các số hạng bậc thấp hơn vì lý do gì?

  • A. Để đơn giản hóa tính toán
  • B. Vì chúng không đáng kể khi n rất lớn
  • C. Vì chúng không ảnh hưởng đến hiệu suất thực tế
  • D. Để thuật toán chạy nhanh hơn

Câu 30: Trong ngữ cảnh của độ phức tạp thuật toán, "n" thường đại diện cho điều gì?

  • A. Số lượng biến trong thuật toán
  • B. Số lượng dòng code
  • C. Kích thước của đầu vào
  • D. Thời gian chạy thuật toán

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 1: Độ phức tạp thời gian nào sau đây mô tả tốt nhất thời gian chạy của thuật toán tìm kiếm nhị phân trong trường hợp xấu nhất?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 2: Xét đoạn mã giả sau:

```
for i = 1 to n:
for j = 1 to n:
print(i * j)
```

Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 3: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 4: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian tốt nhất?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 5: Cho một thuật toán có độ phức tạp O(n log n). Nếu thời gian chạy của thuật toán là 1 giây với n = 1000, thời gian chạy dự kiến sẽ là bao nhiêu với n = 10000?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 7: Trong các độ phức tạp sau, độ phức tạp nào biểu thị thuật toán hiệu quả nhất về thời gian khi n rất lớn?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 8: Xét thuật toán tìm kiếm tuần tự trên một mảng chưa sắp xếp. Trong trường hợp trung bình, độ phức tạp thời gian là bao nhiêu?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 9: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) là:

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 10: Khi nói về độ phức tạp thời gian, chúng ta thường quan tâm đến trường hợp nào nhất?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 11: Đoạn mã giả sau có độ phức tạp thời gian là bao nhiêu?

```
sum = 0
for i = 1 to n:
sum = sum + 1
for j = 1 to n:
sum = sum + 1
```

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 12: Độ phức tạp O(n!) thường xuất hiện trong các thuật toán nào?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 13: Trong thuật toán Selection Sort, số lượng phép so sánh chính xác là bao nhiêu trong trường hợp xấu nhất với mảng có n phần tử?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 14: Giả sử bạn có hai thuật toán, thuật toán A có độ phức tạp O(n^2) và thuật toán B có độ phức tạp O(n log n). Với giá trị n lớn, thuật toán nào chạy nhanh hơn?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 15: Độ phức tạp thời gian giúp chúng ta đánh giá điều gì của một thuật toán?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 16: Cho đoạn mã giả sau:

```
for i = 1 to n:
j = 1
while j < n: j = j * 2 ``` Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 17: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n) trong trường hợp tốt nhất?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 18: Nếu một thuật toán có độ phức tạp O(n^3), và thời gian chạy là 2 giây với n=100, thời gian chạy dự kiến sẽ là bao nhiêu với n=200?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 19: Hàm băm (hash function) lý tưởng có độ phức tạp thời gian để tìm kiếm trung bình là bao nhiêu?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 20: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất khi n rất lớn?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 21: Trong phân tích độ phức tạp thời gian, ký hiệu 'O' lớn (Big O) thường biểu thị điều gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 22: Để sắp xếp một mảng lớn, thuật toán sắp xếp nhanh (Quick Sort) thường được ưa chuộng hơn sắp xếp chọn (Selection Sort) vì lý do chính nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 23: Nếu một thuật toán có độ phức tạp O(log n), điều gì xảy ra với thời gian chạy khi kích thước đầu vào n tăng gấp đôi?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 24: Xét đoạn mã giả sau:

```
for i = 1 to n:
for j = i to n:
print(i + j)
```

Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 25: Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết để thuật toán hoạt động hiệu quả là gì?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 26: Độ phức tạp không gian (space complexity) của một thuật toán đo lường điều gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 27: Một thuật toán với độ phức tạp O(n) được coi là tuyến tính vì lý do nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 28: Trong các thuật toán sắp xếp, thuật toán nào thường có độ phức tạp thời gian xấu nhất là O(n^2)?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 29: Khi phân tích độ phức tạp thời gian, chúng ta bỏ qua các hằng số nhân và các số hạng bậc thấp hơn vì lý do gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 6

Câu 30: Trong ngữ cảnh của độ phức tạp thuật toán, 'n' thường đại diện cho điều gì?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 07 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, ký hiệu Big O thường được sử dụng để mô tả điều gì?

  • A. Thời gian thực thi chính xác của thuật toán trên một máy tính cụ thể.
  • B. Tốc độ tăng trưởng thời gian thực thi của thuật toán khi kích thước đầu vào tăng lên.
  • C. Thời gian thực thi trung bình của thuật toán trong các trường hợp đầu vào khác nhau.
  • D. Bộ nhớ tối đa mà thuật toán sử dụng trong quá trình thực thi.

Câu 2: Thuật toán nào sau đây có độ phức tạp thời gian là O(log n)?

  • A. Tìm kiếm tuần tự trong một mảng chưa sắp xếp.
  • B. Sắp xếp nổi bọt (Bubble Sort).
  • C. Tính tổng các phần tử trong một mảng.
  • D. Tìm kiếm nhị phân trong một mảng đã sắp xếp.

Câu 3: Đoạn mã giả sau thực hiện thao tác gì và có độ phức tạp thời gian là bao nhiêu?

```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

  • A. Tính tổng các số từ 1 đến n, độ phức tạp O(n).
  • B. Tìm giá trị lớn nhất trong mảng, độ phức tạp O(n).
  • C. In ra bảng cửu chương kích thước n x n, độ phức tạp O(n^2).
  • D. Sắp xếp một mảng sử dụng thuật toán hiệu quả, độ phức tạp O(n log n).

Câu 4: Xét thuật toán sắp xếp chèn (Insertion Sort). Trong trường hợp tốt nhất (mảng đã được sắp xếp), độ phức tạp thời gian của thuật toán này là bao nhiêu?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 5: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n) và thuật toán B có độ phức tạp O(n^2). Khi kích thước đầu vào n rất lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

  • A. Thuật toán A (O(n)).
  • B. Thuật toán B (O(n^2)).
  • C. Cả hai thuật toán có hiệu quả tương đương.
  • D. Không thể xác định nếu không biết hằng số ẩn trong ký hiệu Big O.

Câu 6: Cho đoạn mã sau:
```
function calculate(n):
if n <= 1: return 1 else: return calculate(n-1) + calculate(n-1) ``` Độ phức tạp thời gian của hàm `calculate(n)` là:

  • A. O(n)
  • B. O(n^2)
  • C. O(log n)
  • D. O(2^n)

Câu 7: Độ phức tạp thời gian O(n log n) thường gặp ở thuật toán sắp xếp nào?

  • A. Sắp xếp chọn (Selection Sort).
  • B. Sắp xếp nổi bọt (Bubble Sort).
  • C. Sắp xếp trộn (Merge Sort).
  • D. Sắp xếp chèn (Insertion Sort).

Câu 8: Trong trường hợp xấu nhất, thuật toán tìm kiếm tuần tự (Linear Search) sẽ phải thực hiện bao nhiêu phép so sánh để tìm một phần tử trong mảng có kích thước n?

  • A. 1
  • B. log n
  • C. n
  • D. n^2

Câu 9: Nếu một thuật toán có độ phức tạp thời gian O(1), điều này có nghĩa là gì?

  • A. Thời gian thực thi thuật toán tăng tuyến tính theo kích thước đầu vào.
  • B. Thời gian thực thi thuật toán không đổi, không phụ thuộc vào kích thước đầu vào.
  • C. Thời gian thực thi thuật toán giảm khi kích thước đầu vào tăng.
  • D. Thời gian thực thi thuật toán tăng theo logarit của kích thước đầu vào.

Câu 10: Xét đoạn mã sau:
```
for i from 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 11: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau mỗi lần duyệt qua mảng (vòng lặp ngoài), điều gì được đảm bảo?

  • A. Toàn bộ mảng đã được sắp xếp.
  • B. Phần tử lớn nhất (hoặc nhỏ nhất, tùy cách cài đặt) đã được đưa về đúng vị trí cuối cùng (hoặc đầu tiên).
  • C. Mảng đã được chia thành hai nửa, một nửa đã sắp xếp và một nửa chưa sắp xếp.
  • D. Không có gì được đảm bảo cho đến khi thuật toán kết thúc.

Câu 12: Để tìm kiếm một số điện thoại trong danh bạ điện thoại đã được sắp xếp theo tên, bạn sẽ sử dụng phương pháp tìm kiếm nào để có độ phức tạp thời gian tốt nhất?

  • A. Tìm kiếm ngẫu nhiên.
  • B. Tìm kiếm tuần tự (duyệt từ đầu đến cuối).
  • C. Tìm kiếm theo nhóm.
  • D. Tìm kiếm nhị phân (Binary Search).

Câu 13: Độ phức tạp thời gian của thuật toán sắp xếp nhanh (Quick Sort) trong trường hợp trung bình là:

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(2^n)

Câu 14: Giả sử một thuật toán có độ phức tạp O(n^3). Nếu thời gian thực thi của nó là 2 giây với kích thước đầu vào n = 100, thì thời gian thực thi dự kiến sẽ là bao nhiêu với kích thước đầu vào n = 200?

  • A. 4 giây
  • B. 6 giây
  • C. 8 giây
  • D. 16 giây

Câu 15: Trong phân tích độ phức tạp thuật toán, chúng ta thường bỏ qua các hằng số nhân và các số hạng bậc thấp hơn. Tại sao?

  • A. Vì các hằng số và số hạng bậc thấp luôn bằng 0.
  • B. Vì khi kích thước đầu vào n rất lớn, các số hạng bậc cao hơn sẽ chi phối thời gian thực thi.
  • C. Vì các hằng số và số hạng bậc thấp không ảnh hưởng đến hiệu quả của thuật toán.
  • D. Vì việc tính toán chính xác các hằng số và số hạng bậc thấp là quá phức tạp.

Câu 16: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất (hiệu quả nhất) trong các thuật toán được liệt kê?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 17: Độ phức tạp thời gian O(n!) (n giai thừa) thường xuất hiện trong các thuật toán nào?

  • A. Thuật toán tìm kiếm nhị phân.
  • B. Thuật toán sắp xếp trộn.
  • C. Thuật toán tìm đường đi ngắn nhất Dijkstra.
  • D. Thuật toán duyệt toàn bộ các hoán vị (ví dụ: bài toán người du lịch).

Câu 18: Cho đoạn mã giả sau:
```
sum = 0
for i from 1 to n:
for j from i to n:
sum = sum + 1
```
Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(log n)

Câu 19: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh phần tử trong trường hợp xấu nhất là bao nhiêu?

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(log n)

Câu 20: Nếu độ phức tạp thời gian của một thuật toán là O(n log n), điều gì xảy ra với thời gian thực thi khi kích thước đầu vào n tăng gấp đôi?

  • A. Thời gian thực thi không đổi.
  • B. Thời gian thực thi tăng gấp đôi.
  • C. Thời gian thực thi tăng hơn gấp đôi nhưng ít hơn gấp bốn lần.
  • D. Thời gian thực thi tăng gấp bốn lần.

Câu 21: Xét một thuật toán tìm kiếm trong mảng đã sắp xếp. Nếu sử dụng tìm kiếm tuyến tính, độ phức tạp là O(n). Nếu dùng tìm kiếm nhị phân, độ phức tạp là O(log n). Khi nào thì tìm kiếm nhị phân vượt trội hơn tìm kiếm tuyến tính một cách rõ rệt?

  • A. Khi kích thước mảng rất nhỏ.
  • B. Khi phần tử cần tìm nằm ở đầu mảng.
  • C. Trong mọi trường hợp, tìm kiếm nhị phân luôn tốt hơn.
  • D. Khi kích thước mảng rất lớn.

Câu 22: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất (chậm nhất) khi kích thước đầu vào n tăng lên?

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(2^n)

Câu 23: Cho đoạn mã giả sau:
```
count = 0
for i from 1 to n:
for j from 1 to i*i:
count = count + 1
```
Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n)
  • B. O(n^2)
  • C. O(n^3)
  • D. O(n^4)

Câu 24: Trong thực tế, khi lựa chọn thuật toán cho một bài toán, yếu tố nào quan trọng hơn: độ phức tạp thời gian lý thuyết (Big O) hay thời gian thực thi trên dữ liệu cụ thể?

  • A. Độ phức tạp thời gian lý thuyết (Big O) luôn quan trọng hơn.
  • B. Thời gian thực thi trên dữ liệu cụ thể luôn quan trọng hơn.
  • C. Cả hai yếu tố đều quan trọng và cần được xem xét, tùy thuộc vào ngữ cảnh cụ thể.
  • D. Chỉ yếu tố nào dễ đo lường hơn mới quan trọng.

Câu 25: Độ phức tạp thời gian nào sau đây thể hiện sự tăng trưởng nhanh nhất khi kích thước đầu vào n tăng lên?

  • A. O(n log n)
  • B. O(n^2)
  • C. O(n^3)
  • D. O(2^n)

Câu 26: Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình và trường hợp tốt nhất là O(n log n), nhưng trường hợp xấu nhất là O(n^2)?

  • A. Sắp xếp trộn (Merge Sort).
  • B. Sắp xếp nhanh (Quick Sort).
  • C. Sắp xếp vun đống (Heap Sort).
  • D. Sắp xếp chèn (Insertion Sort).

Câu 27: Giả sử bạn cần viết một chương trình để kiểm tra xem một số n có phải là số nguyên tố hay không. Với n lớn, thuật toán nào sau đây sẽ có độ phức tạp thời gian hiệu quả hơn?

  • A. Duyệt tất cả các số từ 2 đến n-1 để kiểm tra ước số.
  • B. Duyệt tất cả các số từ 2 đến n để kiểm tra ước số.
  • C. Duyệt tất cả các số từ 2 đến căn bậc hai của n để kiểm tra ước số.
  • D. Kiểm tra tính chia hết cho tất cả các số chẵn nhỏ hơn n.

Câu 28: Trong một chương trình, bạn có một đoạn mã thực hiện tìm kiếm nhị phân và một đoạn mã khác thực hiện sắp xếp nổi bọt. Nếu bạn gọi cả hai đoạn mã này tuần tự, độ phức tạp thời gian tổng cộng của chương trình sẽ bị chi phối bởi đoạn mã nào khi kích thước đầu vào n lớn?

  • A. Đoạn mã tìm kiếm nhị phân (O(log n)).
  • B. Độ phức tạp tổng cộng là O(log n + n^2).
  • C. Cả hai đoạn mã đều đóng góp ngang nhau vào độ phức tạp tổng cộng.
  • D. Đoạn mã sắp xếp nổi bọt (O(n^2)).

Câu 29: Độ phức tạp không gian của thuật toán đề cập đến yếu tố nào?

  • A. Lượng bộ nhớ mà thuật toán sử dụng trong quá trình thực thi.
  • B. Thời gian cần thiết để thuật toán hoàn thành.
  • C. Số lượng dòng mã trong thuật toán.
  • D. Độ phức tạp của việc cài đặt thuật toán.

Câu 30: Khi phân tích độ phức tạp thời gian của một thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

  • A. Trường hợp tốt nhất.
  • B. Trường hợp trung bình.
  • C. Trường hợp xấu nhất.
  • D. Tất cả các trường hợp đều quan trọng như nhau.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, ký hiệu Big O thường được sử dụng để mô tả điều gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 2: Thuật toán nào sau đây có độ phức tạp thời gian là O(log n)?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 3: Đoạn mã giả sau thực hiện thao tác gì và có độ phức tạp thời gian là bao nhiêu?

```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 4: Xét thuật toán sắp xếp chèn (Insertion Sort). Trong trường hợp tốt nhất (mảng đã được sắp xếp), độ phức tạp thời gian của thuật toán này là bao nhiêu?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 5: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n) và thuật toán B có độ phức tạp O(n^2). Khi kích thước đầu vào n rất lớn, thuật toán nào sẽ hiệu quả hơn về mặt thời gian?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 6: Cho đoạn mã sau:
```
function calculate(n):
if n <= 1: return 1 else: return calculate(n-1) + calculate(n-1) ``` Độ phức tạp thời gian của hàm `calculate(n)` là:

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 7: Độ phức tạp thời gian O(n log n) thường gặp ở thuật toán sắp xếp nào?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 8: Trong trường hợp xấu nhất, thuật toán tìm kiếm tuần tự (Linear Search) sẽ phải thực hiện bao nhiêu phép so sánh để tìm một phần tử trong mảng có kích thước n?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 9: Nếu một thuật toán có độ phức tạp thời gian O(1), điều này có nghĩa là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 10: Xét đoạn mã sau:
```
for i from 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là:

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 11: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau mỗi lần duyệt qua mảng (vòng lặp ngoài), điều gì được đảm bảo?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 12: Để tìm kiếm một số điện thoại trong danh bạ điện thoại đã được sắp xếp theo tên, bạn sẽ sử dụng phương pháp tìm kiếm nào để có độ phức tạp thời gian tốt nhất?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 13: Độ phức tạp thời gian của thuật toán sắp xếp nhanh (Quick Sort) trong trường hợp trung bình là:

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 14: Giả sử một thuật toán có độ phức tạp O(n^3). Nếu thời gian thực thi của nó là 2 giây với kích thước đầu vào n = 100, thì thời gian thực thi dự kiến sẽ là bao nhiêu với kích thước đầu vào n = 200?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 15: Trong phân tích độ phức tạp thuật toán, chúng ta thường bỏ qua các hằng số nhân và các số hạng bậc thấp hơn. Tại sao?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 16: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất (hiệu quả nhất) trong các thuật toán được liệt kê?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 17: Độ phức tạp thời gian O(n!) (n giai thừa) thường xuất hiện trong các thuật toán nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 18: Cho đoạn mã giả sau:
```
sum = 0
for i from 1 to n:
for j from i to n:
sum = sum + 1
```
Độ phức tạp thời gian của đoạn mã này là:

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 19: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh phần tử trong trường hợp xấu nhất là bao nhiêu?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 20: Nếu độ phức tạp thời gian của một thuật toán là O(n log n), điều gì xảy ra với thời gian thực thi khi kích thước đầu vào n tăng gấp đôi?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 21: Xét một thuật toán tìm kiếm trong mảng đã sắp xếp. Nếu sử dụng tìm kiếm tuyến tính, độ phức tạp là O(n). Nếu dùng tìm kiếm nhị phân, độ phức tạp là O(log n). Khi nào thì tìm kiếm nhị phân vượt trội hơn tìm kiếm tuyến tính một cách rõ rệt?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 22: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất (chậm nhất) khi kích thước đầu vào n tăng lên?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 23: Cho đoạn mã giả sau:
```
count = 0
for i from 1 to n:
for j from 1 to i*i:
count = count + 1
```
Độ phức tạp thời gian của đoạn mã này là:

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 24: Trong thực tế, khi lựa chọn thuật toán cho một bài toán, yếu tố nào quan trọng hơn: độ phức tạp thời gian lý thuyết (Big O) hay thời gian thực thi trên dữ liệu cụ thể?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 25: Độ phức tạp thời gian nào sau đây thể hiện sự tăng trưởng nhanh nhất khi kích thước đầu vào n tăng lên?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 26: Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình và trường hợp tốt nhất là O(n log n), nhưng trường hợp xấu nhất là O(n^2)?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 27: Giả sử bạn cần viết một chương trình để kiểm tra xem một số n có phải là số nguyên tố hay không. Với n lớn, thuật toán nào sau đây sẽ có độ phức tạp thời gian hiệu quả hơn?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 28: Trong một chương trình, bạn có một đoạn mã thực hiện tìm kiếm nhị phân và một đoạn mã khác thực hiện sắp xếp nổi bọt. Nếu bạn gọi cả hai đoạn mã này tuần tự, độ phức tạp thời gian tổng cộng của chương trình sẽ bị chi phối bởi đoạn mã nào khi kích thước đầu vào n lớn?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 29: Độ phức tạp không gian của thuật toán đề cập đến yếu tố nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 7

Câu 30: Khi phân tích độ phức tạp thời gian của một thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 08 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

  • A. Trường hợp trung bình vì nó phản ánh hiệu suất điển hình.
  • B. Trường hợp tốt nhất vì nó cho thấy tiềm năng tối ưu của thuật toán.
  • C. Cả ba trường hợp đều quan trọng như nhau.
  • D. Trường hợp xấu nhất vì nó đảm bảo giới hạn trên cho thời gian thực hiện.

Câu 2: Độ phức tạp thời gian O(log n) thường gặp ở loại thuật toán nào?

  • A. Thuật toán sắp xếp nổi bọt (Bubble Sort).
  • B. Thuật toán tìm kiếm nhị phân (Binary Search).
  • C. Thuật toán sắp xếp chọn (Selection Sort).
  • D. Thuật toán tìm kiếm tuần tự (Linear Search).

Câu 3: Xét đoạn mã sau:

```
for i in range(n):
for j in range(m):
print(i, j)
```

Độ phức tạp thời gian của đoạn mã trên là bao nhiêu?

  • A. O(n + m)
  • B. O(max(n, m))
  • C. O(n * m)
  • D. O(log n + log m)

Câu 4: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Sắp xếp chèn (Insertion Sort)

Câu 5: Giả sử bạn có một thuật toán với độ phức tạp O(n^2). Nếu kích thước đầu vào (n) tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

  • A. Gấp đôi
  • B. Không đổi
  • C. Gấp bốn
  • D. Gấp logarit

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp gì?

  • A. Độ phức tạp tuyến tính
  • B. Độ phức tạp hằng số
  • C. Độ phức tạp logarit
  • D. Độ phức tạp đa thức

Câu 7: Cho đoạn mã sau:

```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```

Độ phức tạp thời gian của hàm `factorial(n)` là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(1)

Câu 8: Trong các độ phức tạp sau, độ phức tạp nào là hiệu quả nhất khi n lớn?

  • A. O(n^2)
  • B. O(n)
  • C. O(log n)
  • D. O(n log n)

Câu 9: Thuật toán tìm kiếm tuần tự (Linear Search) có độ phức tạp thời gian trung bình là bao nhiêu nếu phần tử cần tìm nằm ở vị trí ngẫu nhiên trong mảng?

  • A. O(n)
  • B. O(n/2)
  • C. O(1)
  • D. O(log n)

Câu 10: Để sắp xếp một mảng lớn chứa hàng triệu phần tử, thuật toán sắp xếp nào sau đây thường được ưu tiên sử dụng vì hiệu quả thời gian tốt nhất?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp nhanh (Quick Sort)

Câu 11: Độ phức tạp thời gian của thuật toán chèn một phần tử vào đầu danh sách liên kết đơn là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n^2)
  • D. O(1)

Câu 12: Xét đoạn mã:

```
count = 0
for i in range(n):
if i % 2 == 0:
for j in range(n):
count += 1
```

Độ phức tạp thời gian của đoạn mã này là?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(n/2)

Câu 13: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh chính xác trong trường hợp xấu nhất để sắp xếp mảng n phần tử là bao nhiêu?

  • A. n
  • B. n(n-1)/2
  • C. n log n
  • D. log n

Câu 14: Độ phức tạp thời gian nào sau đây biểu thị tốc độ tăng trưởng chậm nhất khi kích thước đầu vào tăng lên?

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 15: Hàm băm (hash function) lý tưởng có độ phức tạp thời gian để tìm kiếm, chèn và xóa phần tử trung bình là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(1)

Câu 16: Xét đoạn mã:

```
for i in range(n):
j = 1
while j < n: j *= 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 17: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau khi thực hiện xong vòng lặp ngoài đầu tiên, điều gì được đảm bảo?

  • A. Mảng đã được sắp xếp hoàn toàn.
  • B. Phần tử nhỏ nhất đã được đưa về đầu mảng.
  • C. Phần tử lớn nhất đã được đưa về cuối mảng.
  • D. Nửa đầu mảng đã được sắp xếp.

Câu 18: Nếu một thuật toán có độ phức tạp O(n log n) mất 1 giây để chạy với n = 1000, thì ước tính mất bao lâu để chạy với n = 10000 (giả sử các yếu tố khác không đổi)?

  • A. Khoảng 1 giây
  • B. Khoảng 10 giây
  • C. Khoảng 100 giây
  • D. Khoảng 1000 giây

Câu 19: Độ phức tạp không gian (space complexity) của một thuật toán đề cập đến điều gì?

  • A. Lượng bộ nhớ thuật toán sử dụng theo kích thước đầu vào.
  • B. Thời gian thuật toán cần để hoàn thành theo kích thước đầu vào.
  • C. Độ phức tạp của việc cài đặt thuật toán.
  • D. Số lượng dòng mã trong thuật toán.

Câu 20: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp tốt nhất?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Tìm kiếm nhị phân (Binary Search) khi phần tử ở giữa
  • D. Sắp xếp chọn (Selection Sort)

Câu 21: Xét đoạn mã:

```
def recursive_function(n):
if n <= 1: return recursive_function(n//2) recursive_function(n//2) ``` Độ phức tạp thời gian của hàm `recursive_function(n)` là?

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(2^n)

Câu 22: Trong phân tích độ phức tạp, ký hiệu Big O thường bỏ qua yếu tố nào?

  • A. Kích thước đầu vào (n)
  • B. Hằng số và hệ số nhân
  • C. Các phép toán cơ bản
  • D. Trường hợp tốt nhất

Câu 23: Thuật toán sắp xếp chèn (Insertion Sort) hoạt động hiệu quả nhất với loại dữ liệu đầu vào nào?

  • A. Mảng đã gần như được sắp xếp
  • B. Mảng có các phần tử ngẫu nhiên
  • C. Mảng đã được sắp xếp ngược
  • D. Mảng chứa nhiều phần tử trùng lặp

Câu 24: Độ phức tạp thời gian của việc truy cập một phần tử tại vị trí bất kỳ trong mảng (array) là bao nhiêu?

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(1)

Câu 25: Để kiểm tra xem một số có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của nó, độ phức tạp thời gian của thuật toán này là bao nhiêu?

  • A. O(n)
  • B. O(√n)
  • C. O(log n)
  • D. O(n log n)

Câu 26: Xét đoạn mã:

```
sum = 0
for i in range(n):
for j in range(i):
sum += 1
```

Độ phức tạp thời gian của đoạn mã này là?

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 27: Trong thuật toán tìm kiếm nhị phân (Binary Search), điều kiện tiên quyết để thuật toán hoạt động đúng là gì?

  • A. Mảng phải được sắp xếp.
  • B. Mảng không được chứa phần tử trùng lặp.
  • C. Kích thước mảng phải là lũy thừa của 2.
  • D. Các phần tử trong mảng phải là số nguyên.

Câu 28: Nếu độ phức tạp thời gian của một thuật toán là O(n^3), và thời gian chạy của nó là 2 giây với n = 100, thì thời gian chạy ước tính với n = 200 là bao nhiêu?

  • A. 4 giây
  • B. 8 giây
  • C. 16 giây
  • D. 32 giây

Câu 29: Độ phức tạp thời gian nào thường liên quan đến các thuật toán "chia để trị" (divide and conquer) hiệu quả?

  • A. O(n^2)
  • B. O(n log n)
  • C. O(n!)
  • D. O(2^n)

Câu 30: Trong thực tế, khi lựa chọn thuật toán, ngoài độ phức tạp thời gian, yếu tố nào khác cũng cần được xem xét?

  • A. Chỉ độ phức tạp không gian.
  • B. Chỉ tính dễ cài đặt của thuật toán.
  • C. Độ phức tạp không gian, tính dễ cài đặt, và các yếu tố khác.
  • D. Không có yếu tố nào khác quan trọng bằng độ phức tạp thời gian.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 1: Trong phân tích độ phức tạp thời gian thuật toán, chúng ta thường quan tâm đến trường hợp nào nhất?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 2: Độ phức tạp thời gian O(log n) thường gặp ở loại thuật toán nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 3: Xét đoạn mã sau:

```
for i in range(n):
for j in range(m):
print(i, j)
```

Độ phức tạp thời gian của đoạn mã trên là bao nhiêu?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 4: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 5: Giả sử bạn có một thuật toán với độ phức tạp O(n^2). Nếu kích thước đầu vào (n) tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 7: Cho đoạn mã sau:

```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```

Độ phức tạp thời gian của hàm `factorial(n)` là bao nhiêu?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 8: Trong các độ phức tạp sau, độ phức tạp nào là hiệu quả nhất khi n lớn?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 9: Thuật toán tìm kiếm tuần tự (Linear Search) có độ phức tạp thời gian trung bình là bao nhiêu nếu phần tử cần tìm nằm ở vị trí ngẫu nhiên trong mảng?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 10: Để sắp xếp một mảng lớn chứa hàng triệu phần tử, thuật toán sắp xếp nào sau đây thường được ưu tiên sử dụng vì hiệu quả thời gian tốt nhất?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 11: Độ phức tạp thời gian của thuật toán chèn một phần tử vào đầu danh sách liên kết đơn là bao nhiêu?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 12: Xét đoạn mã:

```
count = 0
for i in range(n):
if i % 2 == 0:
for j in range(n):
count += 1
```

Độ phức tạp thời gian của đoạn mã này là?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 13: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh chính xác trong trường hợp xấu nhất để sắp xếp mảng n phần tử là bao nhiêu?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 14: Độ phức tạp thời gian nào sau đây biểu thị tốc độ tăng trưởng chậm nhất khi kích thước đầu vào tăng lên?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 15: Hàm băm (hash function) lý tưởng có độ phức tạp thời gian để tìm kiếm, chèn và xóa phần tử trung bình là bao nhiêu?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 16: Xét đoạn mã:

```
for i in range(n):
j = 1
while j < n: j *= 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 17: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau khi thực hiện xong vòng lặp ngoài đầu tiên, điều gì được đảm bảo?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 18: Nếu một thuật toán có độ phức tạp O(n log n) mất 1 giây để chạy với n = 1000, thì ước tính mất bao lâu để chạy với n = 10000 (giả sử các yếu tố khác không đổi)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 19: Độ phức tạp không gian (space complexity) của một thuật toán đề cập đến điều gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 20: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp tốt nhất?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 21: Xét đoạn mã:

```
def recursive_function(n):
if n <= 1: return recursive_function(n//2) recursive_function(n//2) ``` Độ phức tạp thời gian của hàm `recursive_function(n)` là?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 22: Trong phân tích độ phức tạp, ký hiệu Big O thường bỏ qua yếu tố nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 23: Thuật toán sắp xếp chèn (Insertion Sort) hoạt động hiệu quả nhất với loại dữ liệu đầu vào nào?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 24: Độ phức tạp thời gian của việc truy cập một phần tử tại vị trí bất kỳ trong mảng (array) là bao nhiêu?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 25: Để kiểm tra xem một số có phải là số nguyên tố hay không bằng cách thử chia cho tất cả các số từ 2 đến căn bậc hai của nó, độ phức tạp thời gian của thuật toán này là bao nhiêu?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 26: Xét đoạn mã:

```
sum = 0
for i in range(n):
for j in range(i):
sum += 1
```

Độ phức tạp thời gian của đoạn mã này là?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 27: Trong thuật toán tìm kiếm nhị phân (Binary Search), điều kiện tiên quyết để thuật toán hoạt động đúng là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 28: Nếu độ phức tạp thời gian của một thuật toán là O(n^3), và thời gian chạy của nó là 2 giây với n = 100, thì thời gian chạy ước tính với n = 200 là bao nhiêu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 29: Độ phức tạp thời gian nào thường liên quan đến các thuật toán 'chia để trị' (divide and conquer) hiệu quả?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 8

Câu 30: Trong thực tế, khi lựa chọn thuật toán, ngoài độ phức tạp thời gian, yếu tố nào khác cũng cần được xem xét?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 09 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Độ phức tạp thời gian của một thuật toán được định nghĩa là gì?

  • A. Lượng bộ nhớ tối đa mà thuật toán sử dụng.
  • B. Hàm mô tả sự tăng trưởng thời gian thực hiện thuật toán theo kích thước dữ liệu đầu vào.
  • C. Thời gian thực tế chạy thuật toán trên một máy tính cụ thể.
  • D. Số lượng dòng code trong thuật toán.

Câu 2: Ký hiệu Big O thường được sử dụng để mô tả độ phức tạp thời gian nào của thuật toán?

  • A. Trường hợp tốt nhất
  • B. Trường hợp trung bình
  • C. Trường hợp xấu nhất
  • D. Thời gian thực tế đo được

Câu 3: Cho đoạn mã giả sau:

```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(n^2)

Câu 4: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

  • A. O(n)
  • B. O(log n)
  • C. O(1)
  • D. O(n^2)

Câu 5: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là:

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(n^2)

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp:

  • A. Hằng số
  • B. Tuyến tính
  • C. Logarit
  • D. Bậc hai

Câu 7: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất đối với mảng có n phần tử là bao nhiêu?

  • A. n
  • B. log₂(n)
  • C. n * (n - 1) / 2
  • D. n * log₂(n)

Câu 8: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n log n) trong trường hợp trung bình?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp nổi bọt (Bubble Sort)

Câu 9: Nếu một thuật toán có độ phức tạp O(n), thời gian thực hiện thuật toán sẽ thay đổi như thế nào khi kích thước đầu vào n tăng gấp đôi?

  • A. Thời gian thực hiện cũng tăng gấp đôi.
  • B. Thời gian thực hiện tăng gấp bốn.
  • C. Thời gian thực hiện giảm đi một nửa.
  • D. Thời gian thực hiện không thay đổi.

Câu 10: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thuật toán hiệu quả nhất cho dữ liệu đầu vào lớn?

  • A. O(n^2)
  • B. O(n)
  • C. O(log n)
  • D. O(n log n)

Câu 11: Cho đoạn mã giả:
```
function calculate(n):
if n <= 1: return 1 else: return calculate(n-1) + calculate(n-1) ``` Độ phức tạp thời gian của hàm `calculate(n)` là:

  • A. O(n)
  • B. O(n^2)
  • C. O(n log n)
  • D. O(2^n)

Câu 12: Độ phức tạp thời gian O(n!) thường xuất hiện trong loại thuật toán nào?

  • A. Thuật toán sắp xếp
  • B. Thuật toán tìm kiếm
  • C. Thuật toán vét cạn (Brute-force)
  • D. Thuật toán chia để trị

Câu 13: Để tìm kiếm một phần tử trong một mảng đã được sắp xếp, thuật toán nào sau đây là hiệu quả nhất về độ phức tạp thời gian?

  • A. Tìm kiếm tuần tự (Linear Search)
  • B. Tìm kiếm nhị phân (Binary Search)
  • C. Cả hai đều hiệu quả như nhau
  • D. Không thuật toán nào hiệu quả

Câu 14: Khi nào thì độ phức tạp thời gian của trường hợp tốt nhất trở nên quan trọng hơn độ phức tạp thời gian của trường hợp xấu nhất?

  • A. Khi dữ liệu đầu vào luôn có kích thước nhỏ.
  • B. Khi thuật toán luôn được chạy trên máy tính cấu hình cao.
  • C. Khi trường hợp xấu nhất hiếm khi xảy ra.
  • D. Khi cần đảm bảo thời gian phản hồi nhanh nhất trong mọi tình huống, kể cả trường hợp lý tưởng.

Câu 15: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n log n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

  • A. Thuật toán A (O(n log n))
  • B. Thuật toán B (O(n^2))
  • C. Cả hai chạy nhanh như nhau
  • D. Không thể xác định nếu không biết hệ số hằng số

Câu 16: Độ phức tạp không gian (Space Complexity) của một thuật toán là gì?

  • A. Thời gian thực hiện thuật toán.
  • B. Lượng bộ nhớ mà thuật toán sử dụng theo kích thước đầu vào.
  • C. Số lượng phép toán số học trong thuật toán.
  • D. Độ dài mã nguồn của thuật toán.

Câu 17: Trong thực tế, tại sao việc phân tích độ phức tạp thời gian lại quan trọng hơn việc đo thời gian chạy thực tế của thuật toán?

  • A. Vì đo thời gian thực tế quá phức tạp để thực hiện.
  • B. Vì độ phức tạp thời gian luôn chính xác hơn thời gian thực tế.
  • C. Vì độ phức tạp thời gian cho biết cách thuật toán масштабируется (scale) với dữ liệu lớn, không phụ thuộc vào phần cứng.
  • D. Vì thời gian thực tế không thể so sánh giữa các thuật toán khác nhau.

Câu 18: Thuật toán nào sau đây có độ phức tạp thời gian O(1)?

  • A. Truy cập một phần tử trong mảng bằng chỉ số.
  • B. Tìm kiếm tuần tự trong mảng chưa sắp xếp.
  • C. Sắp xếp một mảng bằng thuật toán nổi bọt.
  • D. Tính giai thừa của một số n lớn.

Câu 19: Thuật toán nào sau đây thường có độ phức tạp thời gian O(log n)?

  • A. Tính tổng các phần tử trong mảng.
  • B. Tìm kiếm nhị phân trong mảng đã sắp xếp.
  • C. In ra tất cả các phần tử của một danh sách liên kết.
  • D. Nhân hai ma trận vuông kích thước n x n.

Câu 20: Thuật toán sắp xếp nhanh (Quick Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 21: Điều gì xảy ra với thời gian thực hiện của thuật toán O(n^2) khi kích thước đầu vào tăng gấp 3 lần?

  • A. Thời gian thực hiện tăng gấp 3 lần.
  • B. Thời gian thực hiện tăng gấp 9 lần.
  • C. Thời gian thực hiện tăng gấp 27 lần.
  • D. Thời gian thực hiện không thay đổi.

Câu 22: So sánh độ phức tạp thời gian của thuật toán sắp xếp chọn (Selection Sort) và sắp xếp chèn (Insertion Sort).

  • A. Sắp xếp chọn nhanh hơn sắp xếp chèn trong mọi trường hợp.
  • B. Sắp xếp chèn luôn nhanh hơn sắp xếp chọn.
  • C. Sắp xếp chọn có độ phức tạp O(n log n), còn sắp xếp chèn là O(n^2).
  • D. Cả hai đều có độ phức tạp O(n^2) trong trường hợp trung bình và xấu nhất.

Câu 23: Trong tình huống nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có thể hoạt động tốt hơn so với sắp xếp nhanh (Quick Sort)?

  • A. Khi mảng có kích thước rất lớn.
  • B. Khi cần sắp xếp dữ liệu ngẫu nhiên.
  • C. Khi mảng đã gần như được sắp xếp hoàn toàn.
  • D. Không có tình huống nào.

Câu 24: Cho đoạn mã:
```
for i from 1 to n:
if i % 2 == 0:
for j from 1 to n:
print(j)
```
Độ phức tạp thời gian của đoạn mã này là:

  • A. O(log n)
  • B. O(n)
  • C. O(n log n)
  • D. O(n^2)

Câu 25: Để xác định độ phức tạp thời gian của một thuật toán đệ quy, phương pháp nào thường được sử dụng?

  • A. Đếm số vòng lặp.
  • B. Sử dụng phương pháp thế hoặc định lý thợ (Master Theorem).
  • C. Đo thời gian chạy thực tế với các kích thước đầu vào khác nhau.
  • D. Phân tích trường hợp tốt nhất và xấu nhất riêng biệt.

Câu 26: Trong lập trình thực tế, hiểu biết về độ phức tạp thời gian giúp ích gì cho lập trình viên?

  • A. Chọn thuật toán phù hợp để chương trình chạy nhanh và hiệu quả, đặc biệt với dữ liệu lớn.
  • B. Viết code ngắn gọn và dễ đọc hơn.
  • C. Gỡ lỗi chương trình dễ dàng hơn.
  • D. Tăng tính bảo mật cho chương trình.

Câu 27: Độ phức tạp thời gian trung bình của thuật toán sắp xếp nhanh (Quick Sort) là O(n log n), nhưng trong trường hợp xấu nhất, nó có thể lên tới O(n^2). Trường hợp xấu nhất này xảy ra khi nào?

  • A. Khi mảng đầu vào có kích thước nhỏ.
  • B. Khi mảng đầu vào chứa các số ngẫu nhiên.
  • C. Khi mảng đầu vào đã được sắp xếp hoặc gần như đã sắp xếp.
  • D. Trường hợp xấu nhất không bao giờ xảy ra trong thực tế.

Câu 28: Để giảm độ phức tạp thời gian của một thuật toán, kỹ thuật nào sau đây thường được sử dụng?

  • A. Tăng tốc độ CPU của máy tính.
  • B. Sử dụng nhiều bộ nhớ hơn.
  • C. Viết mã bằng ngôn ngữ lập trình bậc thấp.
  • D. Sử dụng thuật toán hiệu quả hơn hoặc cấu trúc dữ liệu phù hợp hơn.

Câu 29: Mối quan hệ giữa độ phức tạp thời gian và khả năng mở rộng (scalability) của thuật toán là gì?

  • A. Độ phức tạp thời gian thấp hơn thường dẫn đến khả năng mở rộng tốt hơn.
  • B. Độ phức tạp thời gian cao hơn luôn tốt hơn cho khả năng mở rộng.
  • C. Độ phức tạp thời gian không liên quan đến khả năng mở rộng.
  • D. Khả năng mở rộng chỉ phụ thuộc vào phần cứng, không phụ thuộc vào thuật toán.

Câu 30: Tại sao độ phức tạp thời gian là một yếu tố quan trọng trong thiết kế thuật toán?

  • A. Để làm cho mã nguồn ngắn gọn hơn.
  • B. Để đảm bảo thuật toán có thể giải quyết bài toán trong thời gian chấp nhận được, đặc biệt với dữ liệu lớn.
  • C. Để dễ dàng kiểm tra và gỡ lỗi thuật toán.
  • D. Để thuật toán tương thích với nhiều hệ điều hành khác nhau.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 1: Độ phức tạp thời gian của một thuật toán được định nghĩa là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 2: Ký hiệu Big O thường được sử dụng để mô tả độ phức tạp thời gian nào của thuật toán?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 3: Cho đoạn mã giả sau:

```
for i from 1 to n:
for j from 1 to n:
print(i * j)
```

Độ phức tạp thời gian của đoạn mã này là:

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 4: Thuật toán tìm kiếm nhị phân (Binary Search) có độ phức tạp thời gian trong trường hợp xấu nhất là:

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 5: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là:

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 6: Độ phức tạp O(1) còn được gọi là độ phức tạp:

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 7: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất đối với mảng có n phần tử là bao nhiêu?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 8: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n log n) trong trường hợp trung bình?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 9: Nếu một thuật toán có độ phức tạp O(n), thời gian thực hiện thuật toán sẽ thay đổi như thế nào khi kích thước đầu vào n tăng gấp đôi?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 10: Trong các độ phức tạp sau, độ phức tạp nào thể hiện thuật toán hiệu quả nhất cho dữ liệu đầu vào lớn?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 11: Cho đoạn mã giả:
```
function calculate(n):
if n <= 1: return 1 else: return calculate(n-1) + calculate(n-1) ``` Độ phức tạp thời gian của hàm `calculate(n)` là:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 12: Độ phức tạp thời gian O(n!) thường xuất hiện trong loại thuật toán nào?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 13: Để tìm kiếm một phần tử trong một mảng đã được sắp xếp, thuật toán nào sau đây là hiệu quả nhất về độ phức tạp thời gian?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 14: Khi nào thì độ phức tạp thời gian của trường hợp tốt nhất trở nên quan trọng hơn độ phức tạp thời gian của trường hợp xấu nhất?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 15: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n log n) và thuật toán B có độ phức tạp O(n^2). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 16: Độ phức tạp không gian (Space Complexity) của một thuật toán là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 17: Trong thực tế, tại sao việc phân tích độ phức tạp thời gian lại quan trọng hơn việc đo thời gian chạy thực tế của thuật toán?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 18: Thuật toán nào sau đây có độ phức tạp thời gian O(1)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 19: Thuật toán nào sau đây thường có độ phức tạp thời gian O(log n)?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 20: Thuật toán sắp xếp nhanh (Quick Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 21: Điều gì xảy ra với thời gian thực hiện của thuật toán O(n^2) khi kích thước đầu vào tăng gấp 3 lần?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 22: So sánh độ phức tạp thời gian của thuật toán sắp xếp chọn (Selection Sort) và sắp xếp chèn (Insertion Sort).

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 23: Trong tình huống nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có thể hoạt động tốt hơn so với sắp xếp nhanh (Quick Sort)?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 24: Cho đoạn mã:
```
for i from 1 to n:
if i % 2 == 0:
for j from 1 to n:
print(j)
```
Độ phức tạp thời gian của đoạn mã này là:

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 25: Để xác định độ phức tạp thời gian của một thuật toán đệ quy, phương pháp nào thường được sử dụng?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 26: Trong lập trình thực tế, hiểu biết về độ phức tạp thời gian giúp ích gì cho lập trình viên?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 27: Độ phức tạp thời gian trung bình của thuật toán sắp xếp nhanh (Quick Sort) là O(n log n), nhưng trong trường hợp xấu nhất, nó có thể lên tới O(n^2). Trường hợp xấu nhất này xảy ra khi nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 28: Để giảm độ phức tạp thời gian của một thuật toán, kỹ thuật nào sau đây thường được sử dụng?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 29: Mối quan hệ giữa độ phức tạp thời gian và khả năng mở rộng (scalability) của thuật toán là gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 9

Câu 30: Tại sao độ phức tạp thời gian là một yếu tố quan trọng trong thiết kế thuật toán?

Xem kết quả

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Xét thuật toán tìm kiếm tuần tự trên một mảng không sắp xếp có n phần tử. Trong trường hợp xấu nhất, số phép so sánh phần tử cần tìm với các phần tử trong mảng là bao nhiêu?

  • A. 1
  • B. log₂(n)
  • C. n/2
  • D. n

Câu 2: Độ phức tạp thời gian O(log n) thường liên quan đến loại thuật toán nào?

  • A. Thuật toán duyệt toàn bộ danh sách
  • B. Thuật toán chia để trị
  • C. Thuật toán có vòng lặp tuyến tính
  • D. Thuật toán sắp xếp nổi bọt

Câu 3: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

  • A. O(n)
  • B. O(n log n)
  • C. O(n²)
  • D. O(1)

Câu 4: Đoạn mã giả sau có độ phức tạp thời gian là bao nhiêu?

```
for i = 1 to n:
for j = 1 to n:
print(i * j)
```

  • A. O(n)
  • B. O(log n)
  • C. O(n²)
  • D. O(n³)

Câu 5: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán hiệu quả nhất khi n lớn?

  • A. O(n²)
  • B. O(log n)
  • C. O(n)
  • D. O(n log n)

Câu 6: Cho thuật toán có độ phức tạp thời gian O(n log n). Nếu kích thước đầu vào n tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

  • A. Gấp đôi
  • B. Gấp bốn
  • C. Hơn gấp đôi nhưng ít hơn gấp ba
  • D. Không thay đổi

Câu 7: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) là:

  • A. O(n²)
  • B. O(n³)
  • C. O(n)
  • D. O(n log n)

Câu 8: Xét đoạn mã sau. Độ phức tạp thời gian của đoạn mã này là gì?
```
sum = 0
for i = 1 to n:
sum = sum + i
```

  • A. O(n)
  • B. O(log n)
  • C. O(n²)
  • D. O(1)

Câu 9: Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết để thuật toán hoạt động đúng là gì?

  • A. Mảng phải có kích thước nhỏ
  • B. Các phần tử trong mảng phải là số nguyên
  • C. Mảng phải được sắp xếp
  • D. Mảng không được chứa phần tử trùng lặp

Câu 10: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp gì?

  • A. Độ phức tạp tuyến tính
  • B. Độ phức tạp hằng số
  • C. Độ phức tạp logarit
  • D. Độ phức tạp đa thức

Câu 11: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n²) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

  • A. Thuật toán A
  • B. Thuật toán B
  • C. Cả hai thuật toán có thời gian chạy như nhau
  • D. Không thể xác định nếu không biết kích thước đầu vào cụ thể

Câu 12: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất cho thuật toán khi kích thước đầu vào tăng lên rất lớn?

  • A. O(n log n)
  • B. O(n²)
  • C. O(n³)
  • D. O(2ⁿ)

Câu 13: Để xác định độ phức tạp thời gian của một thuật toán, chúng ta thường tập trung vào điều gì?

  • A. Số lượng phép toán cơ bản thực hiện
  • B. Thời gian thực tế chạy thuật toán trên máy tính
  • C. Dung lượng bộ nhớ sử dụng
  • D. Ngôn ngữ lập trình sử dụng

Câu 14: Trong phân tích độ phức tạp thời gian, chúng ta thường bỏ qua các hệ số hằng số và các số hạng bậc thấp hơn. Vì sao?

  • A. Để đơn giản hóa việc tính toán
  • B. Vì chúng không ảnh hưởng đến thời gian chạy thực tế
  • C. Vì khi kích thước đầu vào lớn, số hạng bậc cao nhất chi phối thời gian
  • D. Vì các ngôn ngữ lập trình khác nhau có cách xử lý khác nhau

Câu 15: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp tốt nhất khi mảng đã được sắp xếp?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Sắp xếp nhanh (Quick Sort)

Câu 16: Xét hàm đệ quy tính số Fibonacci sau:
```
fibonacci(n):
if n <= 1: return n else: return fibonacci(n-1) + fibonacci(n-2) ``` Độ phức tạp thời gian của hàm này là bao nhiêu?

  • A. O(n)
  • B. O(n²)
  • C. O(log n)
  • D. O(2ⁿ)

Câu 17: Trong thuật toán sắp xếp nhanh (Quick Sort), độ phức tạp thời gian trung bình là bao nhiêu?

  • A. O(n²)
  • B. O(n³)
  • C. O(n log n)
  • D. O(n)

Câu 18: Một thuật toán có độ phức tạp O(n³). Nếu thời gian thực hiện thuật toán là 1 giây với n = 1000, thì thời gian thực hiện dự kiến là bao nhiêu giây với n = 2000?

  • A. 2 giây
  • B. 4 giây
  • C. 6 giây
  • D. 8 giây

Câu 19: Độ phức tạp thời gian nào sau đây thể hiện sự tăng trưởng chậm nhất khi kích thước đầu vào n tăng lên?

  • A. O(log log n)
  • B. O(log n)
  • C. O(n)
  • D. O(n log n)

Câu 20: Trong thực tế, khi lựa chọn thuật toán, ngoài độ phức tạp thời gian, yếu tố nào khác cũng cần được xem xét?

  • A. Độ phức tạp cài đặt
  • B. Độ phức tạp không gian
  • C. Tính dễ đọc của mã
  • D. Ngôn ngữ lập trình hỗ trợ

Câu 21: Cho đoạn mã giả sau:
```
for i = 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

  • A. O(n²)
  • B. O(n)
  • C. O(log n)
  • D. O(n log n)

Câu 22: Phát biểu nào sau đây là đúng về độ phức tạp thời gian?

  • A. Độ phức tạp thời gian là thời gian thực tế chạy thuật toán.
  • B. Độ phức tạp thời gian phụ thuộc vào tốc độ CPU của máy tính.
  • C. Độ phức tạp thời gian mô tả sự tăng trưởng của thời gian thực hiện theo kích thước đầu vào.
  • D. Độ phức tạp thời gian luôn được biểu diễn bằng đơn vị giây.

Câu 23: Thuật toán tìm kiếm tuyến tính (Linear Search) có thể áp dụng cho loại dữ liệu nào?

  • A. Dữ liệu đã sắp xếp
  • B. Dữ liệu số
  • C. Dữ liệu văn bản
  • D. Cả dữ liệu đã sắp xếp và chưa sắp xếp

Câu 24: Trong các thuật toán sắp xếp, thuật toán nào thường có độ phức tạp thời gian trường hợp xấu nhất là O(n²)?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp heap (Heap Sort)

Câu 25: Để cải thiện độ phức tạp thời gian từ O(n²) xuống O(n log n) trong bài toán sắp xếp, chúng ta có thể sử dụng thuật toán nào?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Sắp xếp trộn (Merge Sort)
  • D. Sắp xếp nổi bọt (Bubble Sort)

Câu 26: Độ phức tạp thời gian nào sau đây là tốt nhất có thể đạt được cho bài toán sắp xếp dựa trên so sánh (comparison-based sorting)?

  • A. O(n)
  • B. O(n log n)
  • C. O(log n)
  • D. O(1)

Câu 27: Khi phân tích độ phức tạp thời gian, trường hợp nào thường được quan tâm nhất?

  • A. Trường hợp tốt nhất (best-case)
  • B. Trường hợp trung bình (average-case)
  • C. Trường hợp xấu nhất (worst-case)
  • D. Trường hợp điển hình (typical-case)

Câu 28: Cho đoạn mã giả:
```
for i = 1 to n:
for j = i to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là:

  • A. O(n²)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 29: Để tìm kiếm một phần tử trong mảng đã sắp xếp, thuật toán nào có độ phức tạp thời gian hiệu quả hơn: tìm kiếm tuần tự hay tìm kiếm nhị phân?

  • A. Tìm kiếm tuần tự
  • B. Tìm kiếm nhị phân
  • C. Cả hai có độ phức tạp như nhau
  • D. Tùy thuộc vào kích thước mảng

Câu 30: Trong các độ phức tạp sau, độ phức tạp nào ít bị ảnh hưởng nhất bởi kích thước đầu vào n?

  • A. O(n)
  • B. O(log n)
  • C. O(n log n)
  • D. O(1)

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 1: Xét thuật toán tìm kiếm tuần tự trên một mảng không sắp xếp có n phần tử. Trong trường hợp xấu nhất, số phép so sánh phần tử cần tìm với các phần tử trong mảng là bao nhiêu?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 2: Độ phức tạp thời gian O(log n) thường liên quan đến loại thuật toán nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 3: Thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian trung bình là bao nhiêu?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 4: Đoạn mã giả sau có độ phức tạp thời gian là bao nhiêu?

```
for i = 1 to n:
for j = 1 to n:
print(i * j)
```

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 5: Trong các độ phức tạp thời gian sau, độ phức tạp nào thể hiện thuật toán hiệu quả nhất khi n lớn?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 6: Cho thuật toán có độ phức tạp thời gian O(n log n). Nếu kích thước đầu vào n tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 7: Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) là:

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 8: Xét đoạn mã sau. Độ phức tạp thời gian của đoạn mã này là gì?
```
sum = 0
for i = 1 to n:
sum = sum + i
```

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 9: Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết để thuật toán hoạt động đúng là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 10: Độ phức tạp thời gian O(1) còn được gọi là độ phức tạp gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 11: Giả sử bạn có hai thuật toán giải cùng một bài toán. Thuật toán A có độ phức tạp O(n²) và thuật toán B có độ phức tạp O(n log n). Với kích thước đầu vào lớn, thuật toán nào sẽ chạy nhanh hơn?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 12: Độ phức tạp thời gian nào sau đây là kém hiệu quả nhất cho thuật toán khi kích thước đầu vào tăng lên rất lớn?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 13: Để xác định độ phức tạp thời gian của một thuật toán, chúng ta thường tập trung vào điều gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 14: Trong phân tích độ phức tạp thời gian, chúng ta thường bỏ qua các hệ số hằng số và các số hạng bậc thấp hơn. Vì sao?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 15: Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất trong trường hợp tốt nhất khi mảng đã được sắp xếp?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 16: Xét hàm đệ quy tính số Fibonacci sau:
```
fibonacci(n):
if n <= 1: return n else: return fibonacci(n-1) + fibonacci(n-2) ``` Độ phức tạp thời gian của hàm này là bao nhiêu?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 17: Trong thuật toán sắp xếp nhanh (Quick Sort), độ phức tạp thời gian trung bình là bao nhiêu?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 18: Một thuật toán có độ phức tạp O(n³). Nếu thời gian thực hiện thuật toán là 1 giây với n = 1000, thì thời gian thực hiện dự kiến là bao nhiêu giây với n = 2000?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 19: Độ phức tạp thời gian nào sau đây thể hiện sự tăng trưởng chậm nhất khi kích thước đầu vào n tăng lên?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 20: Trong thực tế, khi lựa chọn thuật toán, ngoài độ phức tạp thời gian, yếu tố nào khác cũng cần được xem xét?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 21: Cho đoạn mã giả sau:
```
for i = 1 to n:
j = 1
while j < n: j = j * 2 print(i, j) ``` Độ phức tạp thời gian của đoạn mã này là bao nhiêu?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 22: Phát biểu nào sau đây là đúng về độ phức tạp thời gian?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 23: Thuật toán tìm kiếm tuyến tính (Linear Search) có thể áp dụng cho loại dữ liệu nào?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 24: Trong các thuật toán sắp xếp, thuật toán nào thường có độ phức tạp thời gian trường hợp xấu nhất là O(n²)?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 25: Để cải thiện độ phức tạp thời gian từ O(n²) xuống O(n log n) trong bài toán sắp xếp, chúng ta có thể sử dụng thuật toán nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 26: Độ phức tạp thời gian nào sau đây là tốt nhất có thể đạt được cho bài toán sắp xếp dựa trên so sánh (comparison-based sorting)?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 27: Khi phân tích độ phức tạp thời gian, trường hợp nào thường được quan tâm nhất?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 28: Cho đoạn mã giả:
```
for i = 1 to n:
for j = i to n:
print(i, j)
```
Độ phức tạp thời gian của đoạn mã này là:

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 29: Để tìm kiếm một phần tử trong mảng đã sắp xếp, thuật toán nào có độ phức tạp thời gian hiệu quả hơn: tìm kiếm tuần tự hay tìm kiếm nhị phân?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán

Tags: Bộ đề 10

Câu 30: Trong các độ phức tạp sau, độ phức tạp nào ít bị ảnh hưởng nhất bởi kích thước đầu vào n?

Xem kết quả