Uncategorized

Birleştirmeli Sıralama Merge Sort

Şimdi Sıra geldi Merge Sort’a…

220px-merge_sort_animation2

İngilizce AdıMerge Sort
OrtalamaO(n log n)
En kötüO(n log n)
BellekO(n)
Kararlı mı?Evet
YöntemKarşılaştırma ile Birleştirme

Her zamanki gibi videomuz ile başlıyalım…

Şimdi Nedir bu merge sort… Öncelikle direk grafik üzerinden anlatıcam Bir diziyi sürekli iki parçaya böldüğünüzü düşünün.. Ve bu dizide Tüm elemanlar 2 parçaya ayrıldıktan sonra sıralama yaparak birleştirin..

Grafik olarak..

merg

Animasyon olarak…

merge-sort-example-300px

 

Ve En son kod olarak ….

public classmergeSort{
public staticvoidmain(String a[]){
inti;
intarray[]={12,9,4,99,120,1,3,10};
System.out.println(“nn RoseIndiann”);
System.out.println(” Selection Sortnn”);
System.out.println(“Values Before the sort:n”);
for(i =0; i < array.length; i++)
System.out.print(array[i]+” “);
System.out.println();
mergeSort_srt(array,0, array.length-1);
System.out.print(“Values after the sort:n”);
for(i =0; i <array.length; i++)
System.out.print(array[i]+” “);
System.out.println();
System.out.println(“PAUSE”);
}

public staticvoidmergeSort_srt(intarray[],int lo,intn){
intlow = lo;
inthigh = n;
if(low >= high) {
return;
}

intmiddle =(low + high)/2;
mergeSort_srt(array, low, middle);
mergeSort_srt(array, middle +1, high);
intend_low = middle;
intstart_high = middle +1;
while((lo <= end_low)&&(start_high <= high)) {
if(array[low]< array[start_high]) {
low++;
}else{
intTemp = array[start_high];
for(intk = start_high-1; k >= low; k–) {
array[k+1]= array[k];
}
array[low]= Temp;
low++;
end_low++;
start_high++;
}
}
}
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir