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