Merge Sorting (Birleştirme Sıralaması), “böl ve fethet” (divide and conquer) prensibine dayanan bir sıralama algoritmasıdır. Bu algoritma, bir diziyi ikiye böler, her bir yarıyı ayrı ayrı sıralar ve ardından sıralı yarıları birleştirir. Merge Sort, kararlı bir algoritmadır ve en kötü durumda bile O(n log n) zaman karmaşıklığına sahiptir, bu da onu oldukça verimli bir sıralama algoritması yapar. Java dili ile yazılmış bubble sorting algoritma örneğini aşağıda görebilirsiniz.

public static void mergeSorting(int[] arr) {
if (arr.length < 2) {
return;
}
int mid = arr.length / 2;
int[] left = new int[mid];
int[] right = new int[arr.length - mid];
// Sol ve sağ diziyi oluştur
System.arraycopy(arr, 0, left, 0, mid);
System.arraycopy(arr, mid, right, 0, arr.length - mid);
// Sol ve sağ yarıyı sıralama
mergeSorting(left);
mergeSorting(right);
// Birleştirme
merge(arr, left, right);
}
private static void merge(int[] arr, int[] left, int[] right) {
int i = 0, j = 0, k = 0;
while (i < left.length && j < right.length) {
arr[k++] = (left[i] <= right[j]) ? left[i++] : right[j++];
}
while (i < left.length) {
arr[k++] = left[i++];
}
while (j < right.length) {
arr[k++] = right[j++];
}
}
public static void main(String [] args) {
int[] array = { 24, 16, 35, 34, 10 };
mergeSorting(array);
}
Resim Referansı: https://en.m.wikipedia.org/wiki/File:Merge-sort-example-300px.gif