Câu hỏi:

30/11/2024 1,223

Độ phức tạp thời gian của thuật toán sắp xếp chọn SelectionSort(A) là gì?

a) O(1)O(1)O(1)

b) O(n)O(n)O(n)

c) O(nlogn)

d) O(n2)O(n^2)O(n2)

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

a) Sai. O(1)O(1)O(1) là độ phức tạp hằng số, không phù hợp cho thuật toán sắp xếp do thời gian chạy phụ thuộc vào số lượng phần tử trong mảng.

b) Sai. O(n)O(n)O(n) là độ phức tạp của thuật toán sắp xếp có tính tuyến tính, không phải là sắp xếp chọn vì thuật toán này có hai vòng lặp lồng nhau.

c) Sai. O(nlog⁡n)O(n \log n)O(nlogn) là độ phức tạp thời gian của các thuật toán sắp xếp hiệu quả hơn như sắp xếp nhanh (Quick Sort) hoặc sắp xếp trộn (Merge Sort). Tuy nhiên, Selection Sort có độ phức tạp cao hơn do hai vòng lặp lồng nhau.

d) Đúng. Trong Selection Sort, với mỗi lần lặp ngoài, một phần tử nhỏ nhất từ các phần tử còn lại trong mảng sẽ được tìm thấy và đưa vào vị trí thích hợp. Quá trình tìm kiếm phần tử nhỏ nhất tốn O(n)O(n)O(n), và thực hiện nnn lần nên tổng thời gian là O(n2)O(n^2)O(n2).

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

Lời giải

Đáp án: O(n)

Giải thích: Thuật toán tìm kiếm tuần tự LinearSearch duyệt qua toàn bộ mảng để tìm kiếm phần tử cần tìm. Trong trường hợp xấu nhất (khi phần tử không tồn tại trong mảng), thuật toán phải thực hiện n phép so sánh, với n là kích thước của mảng. Vì vậy, độ phức tạp thời gian của thuật toán là O(n), nghĩa là tuyến tính theo kích thước của mảng.

Lời giải

Đáp án: B

Giải thích: Trong trường hợp xấu nhất, thuật toán sắp xếp nổi bọt sẽ có độ phức tạp O(n^2) vì có hai vòng lặp lồng nhau chạy qua các phần tử.

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