<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Merge Sort Nedir? | Volkankey.com</title>
	<atom:link href="https://www.volkankey.com/tag/merge-sort-nedir/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.volkankey.com</link>
	<description>Eğitim, İnternet, Teknoloji</description>
	<lastBuildDate>Mon, 14 Jun 2021 20:38:48 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Merge Sort Nedir?</title>
		<link>https://www.volkankey.com/merge-sort-nedir/</link>
					<comments>https://www.volkankey.com/merge-sort-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Volkan ŞABAHAT]]></dc:creator>
		<pubDate>Mon, 14 Jun 2021 20:38:48 +0000</pubDate>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Merge Sort Nedir?]]></category>
		<category><![CDATA[Merge Sort sıralama algoritması]]></category>
		<guid isPermaLink="false">https://www.volkankey.com/?p=6583</guid>

					<description><![CDATA[<p>Programlamada bir dizi ya da listeyi sıralamak için kullanılan bir çok sıralama algoritması vardır ancak hepsinin birbirine göre avantaj/dezavantajları olabilir. Örneğin merge sort sıralama algoritmalarından en hızlı olanlarından biridir. Şöyle düşünelim. Elimizde 4-8-1-3-5-9-11 şeklinde bir sayı dizisi var. Bu sayıları küçükten büyüğe ya da tam tersi sıralamak istersek nasıl bir yol izlersiniz? Akla birden fazla [&#8230;]</p>
The post <a href="https://www.volkankey.com/merge-sort-nedir/">Merge Sort Nedir?</a> first appeared on <a href="https://www.volkankey.com">Volkankey.com</a>.]]></description>
										<content:encoded><![CDATA[<p>Programlamada bir dizi ya da listeyi sıralamak için kullanılan bir çok sıralama algoritması vardır ancak hepsinin birbirine göre avantaj/dezavantajları olabilir.</p>
<p>Örneğin merge sort sıralama algoritmalarından en hızlı olanlarından biridir.</p>
<p>Şöyle düşünelim.</p>
<p>Elimizde</p>
<p>4-8-1-3-5-9-11 şeklinde bir sayı dizisi var. Bu sayıları küçükten büyüğe ya da tam tersi sıralamak istersek nasıl bir yol izlersiniz? Akla birden fazla çözüm yolu gelebilir.</p>
<p>Örneğin benim aklıma ilk gelen (bubble sort oluyor kendileri) dizinin 1. elemanını alıp diğer tüm elemanlarla karşılaştırıp en küçüğü mü diye kontrol etmek geliyor. Sonra diğer elemanlarına geçicem.</p>
<p><strong>Bubble Sort</strong></p>
<p>Yani 4 ü aldım sırayla 8 ile karşılaştırıyorum 8 daha büyük olduğundan diğerine geçiyorum bakıyorum 1 var 1 daha küçük o zaman en küçük sayı 1 olur diyor devam ediyorum, 3 e, 5 e 9 a ve 11 e de bakıp 1 den küçük olup olmadıklarını kontrol ettiriyorum bakıyorum ki yok en küçük 1 ve 1 i listenin başına alıyorum&#8230;</p>
<p>Sonrasında 2. elemana geçiyorum artık dizim şöyle oldu.</p>
<p>1-8-4-3-5-9-11</p>
<p>8 i alıyorum hepsiyle karşılaştırıyorum 8 den küçük 4 ve 3 var ve 3 olan yere 8 koyup yeni dizi oluşuyor.</p>
<p>1-3-4-8-5-9-11</p>
<p>Listenin 3. elemanına geçiyorum. 4  ten sonrakileri kontrol ettiriyorum ve daha küçük bir sayı yok değişiklik olmayacak listede.</p>
<p>1-3-4-8-5-9-11</p>
<p>Listenin 4. elemanına geçiyorum. 8 den küçük 5 var o zaman 5 ile de yer değiştiyorum.</p>
<p>1-3-4-5-8-9-11</p>
<p>Sonra diğer elemanı yani 8 i alıp 9 ve 11 ile karşılaştırıyorum ama nafile zaten küçük yok, sonrasında 9 u alıyorum ondan da küçüğü yok o zaman son elemanına gelince listenin zaten liste küçükten büyüğe sıralandı.</p>
<p>Bu basit gibi görünse de liste elemanları çok olunca 1000-10 bin gibi. O zaman bu sıralama algoritmasının yavaş kaldığını görürsünüz.</p>
<p>O zaman merge sort u gündeme alabilirsiniz.</p>
<p><strong>Merge Sort</strong></p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6586" src="https://www.volkankey.com/wp-content/uploads/2021/06/Merge-Sort-Tutorial-1.png" alt="" width="618" height="595" /></p>
<p>Merge sort algoritması basit olarak bir diziyi ardışık olarak en küçük alt dizilerine kadar bölen sonra da onları sıraya koyarak bireştiren özyineli (kendini tekrar eden) bir algoritmadır.</p>
<p>Merge sort ta işleyiş de kısaca şöyledir:</p>
<ul>
<li>Sıralı olmayan diziyi ortadan eşit olarak iki alt diziye ayırır.</li>
<li>Bu ayırma işlemi, alt diziler en çok iki elemanlı olana kadar devam eder.</li>
<li>Alt dizileri kendi içinde sıralar.</li>
<li>Sıralı iki alt diziyi tek bir sıralı dizi olacak şekilde birleştirir.</li>
</ul>
<p><iframe title="Merge Sort | GeeksforGeeks" width="696" height="392" src="https://www.youtube.com/embed/JSceec-wEyw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><strong>Örnek Kod:</strong></p>
<p><span style="background-color: #999999;">Private Sub DoMergeSort(ByVal array() As Integer, ByVal Lower As Integer, ByVal Higher As  Integer)</span></p>
<p><span style="background-color: #999999;">If Lower &gt;= Higher Then Return</span><br />
<span style="background-color: #999999;">Dim length As Integer = Higher &#8211; Lower + 1</span><br />
<span style="background-color: #999999;">Dim middle As Integer = Math.Floor((Lower + Higher) / 2)</span><br />
<span style="background-color: #999999;">DoMergeSort(array, Lower, middle)</span><br />
<span style="background-color: #999999;">DoMergeSort(array, middle + 1, Higher)</span><br />
<span style="background-color: #999999;">Dim temp(array.Length &#8211; 1) As Integer</span><br />
<span style="background-color: #999999;">For i As Integer = 0 To length &#8211; 1</span><br />
<span style="background-color: #999999;">temp(i) = array(Lower + i)</span><br />
<span style="background-color: #999999;">Next</span><br />
<span style="background-color: #999999;">Dim m1 As Integer = 0</span><br />
<span style="background-color: #999999;">Dim m2 As Integer = middle &#8211; Lower + 1</span><br />
<span style="background-color: #999999;">For i As Integer = 0 To length &#8211; 1</span><br />
<span style="background-color: #999999;">If m2 &lt;= Higher &#8211; Lower Then</span><br />
<span style="background-color: #999999;">If m1 &lt;= middle &#8211; Lower Then</span><br />
<span style="background-color: #999999;">If temp(m1) &gt; temp(m2) Then</span><br />
<span style="background-color: #999999;">array(i + Lower) = temp(m2)</span><br />
<span style="background-color: #999999;">m2 += 1</span><br />
<span style="background-color: #999999;">Else</span><br />
<span style="background-color: #999999;">array(i + Lower) = temp(m1)</span><br />
<span style="background-color: #999999;">m1 += 1</span><br />
<span style="background-color: #999999;">End If</span><br />
<span style="background-color: #999999;">Else</span><br />
<span style="background-color: #999999;">array(i + Lower) = temp(m2)</span><br />
<span style="background-color: #999999;">m2 += 1</span><br />
<span style="background-color: #999999;">End If</span><br />
<span style="background-color: #999999;">Else</span><br />
<span style="background-color: #999999;">array(i + Lower) = temp(m1)</span><br />
<span style="background-color: #999999;">m1 += 1</span><br />
<span style="background-color: #999999;">End If</span><br />
<span style="background-color: #999999;">Next</span><br />
<span style="background-color: #999999;">End Sub</span></p>
<p>&nbsp;</p>The post <a href="https://www.volkankey.com/merge-sort-nedir/">Merge Sort Nedir?</a> first appeared on <a href="https://www.volkankey.com">Volkankey.com</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.volkankey.com/merge-sort-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
