Phương pháp là tuyến tính khi thời gian tăng tuyến tính với số lượng yếu tố liên quan.Ví dụ: vòng lặp for in các phần tử của mảng gần như là tuyến tính:
for x in range(10):
print x
vì nếu in phạm vi (100) thay vì phạm vi (10), thời gian cần để chạy là 10 lần lâu hơn. Bạn sẽ thấy rất thường được viết là O (N), nghĩa là thời gian hoặc nỗ lực tính toán để chạy thuật toán tỷ lệ với N.
Bây giờ, giả sử chúng ta muốn in các phần tử của hai cho vòng:
for x in range(10):
for y in range(10):
print x, y
Đối với mỗi x, tôi lặp 10 lần y. Vì lý do này, toàn bộ điều đi qua 10x10 = 100 bản in (bạn có thể thấy chúng chỉ bằng cách chạy mã). Nếu thay vì sử dụng 10, tôi sử dụng 100, bây giờ phương pháp sẽ làm 100x100 = 10000. Nói cách khác, phương thức này là O (N * N) hoặc O (N²), bởi vì mỗi lần bạn tăng số lượng phần tử, nỗ lực tính toán hoặc thời gian sẽ tăng lên dưới dạng hình vuông của số điểm.
Tôi chỉ trả lời cho câu trả lời này vì tôi đã yêu cầu một cách dễ dàng để giải thích điều này. Nhưng chắc chắn tất cả các câu trả lời là thực sự tốt đẹp và đầy đủ. –
Bạn nên xem xét việc thay đổi ví dụ thành: "cho x trong phạm vi (n)" đối với x trong phạm vi (10) là thời gian không đổi, không tuyến tính. – pepper