Thuật toán sắp xếp hòa lẫn merga sort trong Phân tích và thiết kế thuật toánBao gồm: Ý tưởng, thuật toán, ví dụ, thủ tục, độ phức tạp.1. Ý tưởngSắp xếp trộn (Merge Sort) là một giải thuật sắp xếp dựa trên giải thuật Chia để trị (Divide and Conquer).Để sắp xếp một mảng Astart...end, Chúng ta sẽ chia mảng lớn thành những mảng con nhỏ hơn bằng cách chia đôi mảng lớn và chúng ta tiếp tục chia đôi các mảng con cho tới khi mảng con nhỏ nhất chỉ còn 1 phần tử.
LOGO Thuật toán xếp hòa nhập/ hòa lẫn Merge Sort Nguyễn Thị Thanh Huyền Lớp SP Tin K49 Trường ĐHSP Thái Nguyên MERGE SORT Sắp xếp hòa nhập/ hòa lẫn ý tưởng Thuật toán Ví dụ Thủ tục Độ phức tạp LOGO Ý tưởng Sắp xếp trộn (Merge Sort) giải thuật xếp dựa giải thuật Chia để trị (Divide and Conquer) Để xếp mảng A[start end], Chúng ta chia mảng lớn thành mảng nhỏ cách chia đôi mảng lớn tiếp tục chia đôi mảng mảng nhỏ phần tử LOGO Ý tưởng Sau tiến hành so sánh mảng có mảng sở (khi chia đôi mảng lớn thành mảng mảng lớn gọi mảng sở mảng đó) so sánh chúng vừa xếp vừa ghép mảng lại thành mảng sở, tiếp tục so sánh ghép mảng lại đến lại mảng mảng xếp LOGO Thuật toán Dãy gồm phần tử coi xếp tăng dần Giả sử cần xếp dãy a[i j] ta quy về việc xếp dãy a[i k] a[k+1 j] với k nằm i j ( k=(i+j) div 2), sauđó ta hòa nhập dãy xếp thành dãy xếp LOGO Thuật toán Thuật toán hòa nhập dãy đã được sắp xếp Giả sử có dãy xếp, ta tìm cách hòa nhập dãy lại thành dãy xếp Ta so sánh phầntử có giá trị nhỏ dãy, chọn phần tử nhỏ đưa dãy xếp riêng loại phần tử khỏi dãy chứa Lặp lại trình dãy hết chuyển dãy lại vào đuôi dãy xếp LOGO Ví dụ Sắp xếp dãy sau theo phương pháp xếp hòa nhập (Merge Sort ) 12 15 12 15 LOGO Ví dụ 2 12 8 12 12 12 15 15 6 15 15 LOGO Thủ tục Thủ tục hòa nhập dãy a[i k] và a[k+1 j]: Procedure Merge (var a: mang; I,j,k :integer); Var c: mang ; t, h, i1, j1: Interger; Begin i1:=1; j1:= k+1; t:=I; While (i1