"Enter"a basıp içeriğe geçin

Ay: Eylül 2024

Merge Sorting

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

Yorum Bırak