Thực hành xác định độ phức tạp thời gian thuật toán

Môn: Khoa họcKhối: Lớp 11Nguồn SGK: trang 116-118
Xem trang sách
Tóm tắt

Bài thực hành xác định tìm kiếm tuần tự là O(n) và sắp xếp chọn là O(n²) bằng cách đếm phép tính rồi lấy bậc chủ đạo.

Hiểu bài

Với tìm kiếm tuần tự, số lần so sánh phụ thuộc vị trí phần tử cần tìm; trong trường hợp xấu nhất phải duyệt theo kích thước n, vì vậy độ phức tạp là O(n). Bài thực hành hướng dẫn hai bước: phân tích các câu lệnh để tính tổng số phép tính cơ bản, sau đó lấy bậc tăng chủ đạo để xác định O-lớn.

Với sắp xếp chọn:

for i in range(n-1):
    for j in range(i+1, n):
        if A[j] < A[iMin]:
            iMin = j

Tổng số phép so sánh chứa tổng 1 + 2 + ... + (n-1). Nguồn đưa ra hàm thời gian đại diện:

T(n) = n² + 3n - 3

Do thành phần chi phối, thuật toán sắp xếp chọn có độ phức tạp O(n²).