DataTemp2. Hàm trả về giá trị là chiều dài của đường chạy tự nhiên đầu tiên trong tập tin dữ liệu DataFile nếu việc phân phối hoàn tất, trong trường hợp ngược lại hàm trả về giá trị –1. int FileNaturalMerge(char * DataTemp1, char * DataTemp2, char * DataFile); Hàm thực hiện việc trộn từng cặp tương ứng các đường chạy tự nhiên trên hai tập tin tạm thời có tên DataTemp1, | if Head 1 Temp j1 M I1 J1 else Temp J2 M I1 J2-- I1 FirstPair 0 if I1 I2 return Head 0 - Head break if I1 I2 Temp J1 M I1 if I1 N-1 L N return return void NaruralMergeSort1 T M int N int L 1 if N 2 return while M L-1 M L L N L T Temp new T N if Temp NULL return while L N NaturalMergeDistribute M N Temp L if L N for int I 0 I N I M I Temp I break . NaturalMergeDistribute Temp N M L delete Temp return Trang 58 - Ví dụ minh họa thuật toán Giả sử ta cần sap xếp mảng M có 10 phần tử sau N 10 M 51 39 45 55 20 15 20 17 40 10 Ta thực hiến cảc lần trón cảc cặp run tự nhiến ở hai đầu dầy nảy vả kết hợp phản phói cảc run mởi trón vế hai đầu dầy kia nhự sau Lần 1 L 1 Trón cảc cặp run tự nhiến có chiếu dải L1 1 vả L2 2 trến M thảnh cảc run có chiếu dải L 3 vả kết hợp phản phối luân phiến cảc run nảy vế hải đầu dầy Tmp M 45 Tmp Đói vai tró cua M vả Tmp chó nhau Lần 2 L 3 Trón cầc cầp run tự nhiến có chiếu dải L1 3 vả L2 5 trến M thảnh cầc run có chiếu dải L 8 vả kết hợp phản phói luản phiến cảc run nảy vế hải đầu dầy Tmp Đói vai tró của M và Tmp chó nhau 17 20 39 40 45 51 55 15 M 0 0 Lần 3 L 8 Trón cảc cảp run tự nhiến có chiếu dải L1 8 vả L2 2 trến M thảnh cảc run có chiếu dải L 10 vả kết hợp phản phói luản phiến cảc run nảy vế hải đầu dầy Tmp M 10 17 20 39 40 45 51 55 20 15 Tmp 10 15 17 20 20 39 40 45 51 5 Đói vai tró cua M vả Tmp chó nhau M 10 15 17 20 20 39 40 45 51 55 Trang 59 L 10 Kết thúc thuật toán - Phân tích thuật toán trộn tự nhiên Trong trường hợp tot nhất khi dãy co thứ tự tăng thì chúng ta không phải qua bước phấn phôi vã trôn não hết Sô phếp gãn Gmin 1 So phếp so sanh Smin 2 N-1 2 2N So phếp hoãn vị Hmin 0 Trong trường hợp xãú nhãt khi dãy co thứ tự giảm ợ nửã đãu vã co thứ tự tãng ợ nửã cuối vã ợ moi bước trộn phãn phoi thì đo dãi đường chạy mời cúng chỉ tãng gãp đoi. Trong trượng hợp nãy sế giong như thuãt toán trọn thãng đã hiếu chỉnh So phếp gãn Gmãx NxLog2 N 1 So phếp so sãnh Smãx 2NxLog2 N 2 So phếp hoãn vị Hmin 0 Trun bình So phếp gãn Gãvg NxLog2 N 2 1 So