Hướng dẫn what is the time complexity of python slice? - độ phức tạp thời gian của lát trăn là gì?

Giả sử tôi có một số danh sách python, my_list có chứa n phần tử. Các phần tử đơn có thể được lập chỉ mục bằng cách sử dụng my_list[i_1], trong đó i_1 là chỉ số của phần tử mong muốn. Tuy nhiên, danh sách Python cũng có thể được lập chỉ mục my_list[i_1:i_2] trong đó một "lát" của danh sách từ i_1 đến i_2 là mong muốn. Ký hiệu lớn [trường hợp xấu nhất] để cắt một danh sách kích thước n là gì?

Cá nhân, nếu tôi mã hóa "máy cắt", tôi sẽ lặp lại từ i_1 đến i_2, tạo một danh sách mới và trả lại nó, ngụ ý O [n], đây có phải là Python làm thế nào không?

Cảm ơn bạn,

Đã hỏi ngày 2 tháng 11 năm 2012 lúc 21:59Nov 2, 2012 at 21:59

0

Nhận một lát là O [____ 8]. Điều này là do đại diện nội bộ của Python trong danh sách là một mảng, vì vậy bạn có thể bắt đầu tại i_1 và lặp lại đến i_2.

Để biết thêm thông tin, hãy xem mục Wiki phức tạp về thời gian Python

Bạn cũng có thể xem xét việc triển khai trong nguồn cpython nếu bạn muốn.

Đã trả lời ngày 2 tháng 11 năm 2012 lúc 22:01Nov 2, 2012 at 22:01

Sam Mussmannsam MussmannSam Mussmann

5,8132 Huy hiệu vàng28 Huy hiệu bạc43 Huy hiệu đồng2 gold badges28 silver badges43 bronze badges

2

Đối với một danh sách kích thước N và một lát có kích thước M, phép lặp thực sự chỉ là O [M], không phải O [N]. Vì m thường là

Bài Viết Liên Quan

Chủ Đề