tim bài tự
tim bài tự là gộp vào bài tự cùng cắm vào bài tự kết hợp, là một cáiỔn địnhBài tự thuật toán, từ Tim Peters với 2002 năm dùng Python thực hiện. Hiện tại, tim bài tự là Python tiêu chuẩn bài tự thuật toán, thả bị Java SE7 dùng cho đối phi nguyên thủy loại hình số tổ bài tự.
tim bài tự ở tốt nhất dưới tình huống thời gian phức tạp độ vì
Thuật toán
Mọi người đều biết, gộp vào bài tự là trước đem số tổ phân chia vì hai bộ phận, sau đó đệ quy mà đối hai cái tử số tổ tiến hành gộp vào bài tự, cuối cùng xác nhập hai cái tử số tổ. Cứ như vậy, gộp vào bài tự xác nhập thao tác nhỏ nhất đơn vị chính là đơn cái nguyên tố. Nhưng là, số tổ trung khả năng nguyên bản liền tồn tại liên tục thả có tự tử số tổ, gộp vào bài tự vô pháp lợi dụng cái này đặc tính.
tim bài tự vì lợi dụng số tổ trung bản thân liền tồn tại liên tục thả có tự tử số tổ, lấy RUN làm xác nhập thao tác nhỏ nhất đơn vị. Trong đó, RUN là một cái thỏa mãn dưới tính chất tử số tổ:
- Một cái RUN hoặc là thị phi hàng tự, hoặc là là nghiêm khắc thăng tự.
- Một cái RUN tồn tại một cái chiều dài hạn cuối.
tim bài tự quá trình chính là một cái cùng loại gộp vào bài tự quá trình, đem số tổ phân chia vì nhiều RUN, sau đó lấy nào đó quy tắc không ngừng mà xác nhập hai cái RUN, thẳng đến số tổ có tự. Cụ thể quá trình như sau:
Lệnh
Trong đó,
Phức tạp độ chứng minh
Tốt nhất dưới tình huống, số tổ bản thân liền có tự, tức số tổ bản thân chính là một cái RUN, lúc này tim bài tự liền biến lịch một lần số tổ, tìm được rồi duy nhất RUN, liền kết thúc. Cho nên, tốt nhất dưới tình huống, tim bài tự thời gian phức tạp độ vì
Viết ở phía sau
Bổn văn chỉ là đơn giản giới thiệu tim bài tự nguyên lý, trên thực tế tim bài tự ở thực hiện thời điểm còn có một ít mặt khác ưu hoá, nơi này không hề nhất nhất liệt kê. tim bài tự ở java trung thực hiện viết đến phi thường hảo, nếu muốn biết chân chính tim bài tự đề cử đi xem java trung tim bài tự thực hiện.
Tham khảo tư liệu
- Timsort
- On the Worst-Case Complexity of TimSort
- original explanation by Tim Peters
- java thực hiện
- c ngôn ngữ thực hiện
Bổn giao diện gần nhất đổi mới:2023/2/18 07:57:07,Đổi mới lịch sử
Phát hiện sai lầm? Tưởng cùng nhau hoàn thiện?Ở GitHub thượng biên tập này trang!
Bổn giao diện cống hiến giả:Backl1ght,Great-designer,shuzhouliu
Bổn giao diện toàn bộ nội dung ởCC BY-SA 4.0CùngSATAHiệp nghị chi điều khoản hạ cung cấp, phụ gia điều khoản cũng khả năng ứng dụng