7 Ekim 2012 Pazar

Merge Sort



public class MergeSort {

static int dizi[] = {5,12,8,31,6,13,26,19};

public static void main(String args[])
{
System.out.println("Sıralanmadan Önce");
listele(dizi);
mergeSort(0,7);
System.out.println("\nSıralanmadan Sonra");
listele(dizi);
}

    static void listele(int[] dizi)
    {
for(int i=0;i<dizi.length;i++)
{
System.out.print(dizi[i] + " ");
}
}
   
    static void mergeSort(int alt, int ust)
    {
    if(alt < ust)
    {
    int m = (alt + ust) / 2;
    mergeSort(alt, m);
    mergeSort(m+1, ust);
    merge(alt,m,ust);
    }
    }
   
    static void merge(int alt, int m, int ust)
    {
    int[] yeniDizi = new int[8];
    int i, j, k;
   
    for(i = alt;i<= ust;i++)
    {
    yeniDizi[i] = dizi[i];
    }
   
    i = alt;
    j = m+1;
    k = alt;
   
    while(i<=m && j<=ust)
    {
    if(yeniDizi[i] <= yeniDizi[j])
    {
    dizi[k++] = yeniDizi[i++];
    }
    else
    {
    dizi[k++] = yeniDizi[j++];
    }
    }
   
    while(i<=m)
    {
    dizi[k++] = yeniDizi[i++];
    }
    }

}

Hiç yorum yok:

Yorum Gönder