Blog này dựa trên cách tiếp cận phân chia và chinh phục. Merge Sort là một thuật toán 'chia và chinh phục' trong đó vấn đề được chia thành các bài toán con và sau đó được hợp nhất để xác định giải pháp. Blog này trên Merge Sort in sẽ hướng dẫn bạn chi tiết về các chủ đề bên dưới -
- Merge Sort trong Python là gì?
- Phương pháp chia rẽ và chinh phục
- Triển khai Merge Sort trong Python
- Lưu đồ thực hiện Sắp xếp Hợp nhất
- Ưu điểm và cách sử dụng
Merge Sort trong Python là gì?
Merge Sort dựa trên thuật toán chia và chinh phục, trong đó mảng đầu vào được chia thành hai nửa, sau đó được sắp xếp riêng biệt và hợp nhất lại để đạt được giải pháp. Hàm merge () được sử dụng để hợp nhất các .
Phương pháp chia rẽ và chinh phục
- Mảng được chia đôi và quá trình này được lặp lại với mỗi nửa cho đến khi mỗi nửa có kích thước là 1 hoặc 0.
- Mảng có kích thước 1 được sắp xếp theo thứ tự.
- Bây giờ hai mảng đã sắp xếp được kết hợp thành một mảng lớn. Và điều này được tiếp tục cho đến khi tất cả các phần tử được kết hợp và mảng được sắp xếp.
Đây là hình ảnh của sắp xếp hợp nhất để xóa hình ảnh cho bạn
kiểu dữ liệu sql cho ngày tháng
Mảng đầu vào = [3,1,4,1,5,9,2,6,5,4]
Bây giờ, chúng ta hãy chuyển sang phần triển khai.
Triển khai Merge Sort trong Python
def mergeSort (nlist): print ('Splitting', nlist) if len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (lefthalf) mergeSort (quyền) i = j = k = 0 trong khi tôiĐầu ra:
$ python main.py
(‘Tách‘, [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
(‘Tách‘, [3, 1, 4, 1, 5])
(‘Tách‘, [3, 1])
(‘Tách‘, [3])
(‘Hợp nhất‘, [3])
(‘Tách‘, [1])
(‘Hợp nhất‘, [1])
(‘Hợp nhất‘, [1, 3])
(‘Tách‘, [4, 1, 5])
(‘Tách‘, [4])
(‘Hợp nhất‘, [4])
(‘Tách‘, [1, 5])
(‘Tách‘, [1])
(‘Hợp nhất‘, [1])
(‘Tách‘, [5])
(‘Hợp nhất‘, [5])
(‘Hợp nhất‘, [1, 5])
(‘Hợp nhất‘, [1, 4, 5])
(‘Hợp nhất‘, [1, 1, 3, 4, 5])
(‘Tách‘, [9, 2, 6, 5, 4])
(‘Tách‘, [9, 2])
(‘Tách‘, [9])
(‘Hợp nhất‘, [9])
(‘Tách‘, [2])
(‘Hợp nhất‘, [2])
(‘Hợp nhất‘, [2, 9])
(‘Tách‘, [6, 5, 4])
(‘Tách‘, [6])
(‘Hợp nhất‘, [6])
(‘Tách‘, [5, 4])
(‘Tách‘, [5])
(‘Hợp nhất‘, [5])
(‘Tách‘, [4])
(‘Hợp nhất‘, [4])
(‘Hợp nhất‘, [4, 5])
(‘Hợp nhất‘, [4, 5, 6])
(‘Hợp nhất‘, [2, 4, 5, 6, 9])
(‘Hợp nhất‘, [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]
java addactionlistener (cái này)Lưu đồ để triển khai Sắp xếp Hợp nhất
Ưu điểm và cách sử dụng Merge Sort
Hầu hết các thuật toán khác hoạt động không tốt với cấu trúc dữ liệu tuần tự như tệp và danh sách được liên kết. Trong các cấu trúc này, việc truy cập một phần tử ngẫu nhiên cần thời gian tuyến tính, không phải thời gian không đổi thông thường. Và bản chất của sắp xếp hợp nhất làm cho cấu trúc dữ liệu đó trở nên dễ dàng và nhanh chóng.Một trong những tính năng tốt nhất của sắp xếp hợp nhất là số lượng so sánh thấp. Nó làm cho số lượng so sánh là O (n * log (n)), nhưng hệ số không đổi tốt hơn so với quicksort, điều này hữu ích khi hàm so sánh hoạt động chậm.Ngoài ra, cách tiếp cận chia để trị của sắp xếp hợp nhất giúp thuận tiện cho việc xử lý song song.
Với điều này, chúng ta đến phần cuối của blog này về “Cách triển khai Merge Sort trong Python”. Tôi hy vọng nội dung đã bổ sung một số giá trị cho kiến thức của bạn về Python. Để có kiến thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký tham gia trực tiếp với hỗ trợ 24/7 và truy cập trọn đời.