Câu hỏi:

17/11/2024 544

Cách nào dưới đây có độ phức tạp thời gian tuyến tính?

a) Tìm số lớn nhất trong dãy số bằng cách so sánh từng cặp.

b) Tính giai thừa của một số nguyên n bằng đệ quy.

c) Sắp xếp một dãy số bằng thuật toán Quick Sort.

d) Tìm kiếm một số trong dãy số không sắp xếp bằng cách lặp qua từng phần tử.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

a) Đúng – Độ phức tạp thời gian là O(n) vì phải duyệt qua từng phần tử để so sánh.

b) Sai – Độ phức tạp thời gian là O(n) nhưng không được coi là tuyến tính trong trường hợp này do bản chất của đệ quy liên quan đến nhiều lời gọi hàm chồng chéo.

c) Sai. Thuật toán Quick Sort có độ phức tạp thời gian trung bình là O(nlog⁡n)

d) Đúng. Tìm kiếm một số trong dãy số không sắp xếp bằng cách lặp qua từng phần tử có độ phức tạp thời gian O(n), vì phải kiểm tra tất cả n phần tử.

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Đáp án: A

Giải thích: Độ phức tạp thời gian chủ yếu phụ thuộc vào kích thước dữ liệu đầu vào (n). Các yếu tố khác như ngôn ngữ lập trình hay kỹ năng lập trình viên có thể ảnh hưởng đến hiệu suất thực tế nhưng không phải là yếu tố chính để xác định độ phức tạp.

Câu 2

Lời giải

Đáp án: B

Giải thích: Độ phức tạp thời gian O(n^2) xảy ra khi có hai vòng lặp lồng nhau, mỗi vòng lặp chạy qua n phần tử.

Câu 3

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Câu 5

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Câu 6

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP