Bilgisayar bilimlerinde kullanılan bir sıralama algoritmasıdır. Merge Sort algoritması, 1945 yılında John von Neumann tarafından bulunmuştur. Merge Sort, sıralanması istenen veri kümesini 2’ye bölme ve karşılaştırma işlemleri yaparak sıralamayı gerçekler. zamanda gerçeklenen algoritmanın algoritması aslında günlük hayatta çok sık başvurduğumuz bir yöndemdir: Sıralı olmayan listeyi ortadan eşit olarak iki alt listeye ayırır. Alt listeleri kendi içinde sıralar. Sıralı iki alt listeyi tek bir sıralı liste olacak şekilde birleştirir.     Örnek C++ kodu: void mergesort (int *a, int l, int r) { int m; if (l<r) { m = (l+r)/2; mergesort(a,l,m); mergesort(a,m+1,r); merge (a,l,m,r); } } void merge (int *a, int l, int m, int r) { int b[SIZE]; int h,i,j,k; i = l; j = m+1; k = l; while (i<=m && j<=r) { if (a[i] <= a[j]) { b[k] = a[i]; i = i+1; } else if (a[i] > a[j]) { b[k] = a[j]; j = j+1; } k = k+1; } if (i>m) { for (h=j; h<=r; h++) b[k+h-j] = a[h]; } else if (j>r) { for (h=i; h<=m; h++) b[k+h-i] = a[h]; } for (h=l; h<=r; h++) a[h] = b[h]; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Tags: , | Categories: Algoritma | C++