<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>redux-framework</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>di-blocks</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>insert-headers-and-footers</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>voice</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<?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>Algorithms &#8211; Ahmet Özgün Özcan</title>
	<atom:link href="https://blog.ahmetozgunozcan.com.tr/algorithms/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ahmetozgunozcan.com.tr</link>
	<description>Ahmet Özgün Özcan Blog</description>
	<lastBuildDate>Mon, 13 Dec 2021 19:13:09 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.2</generator>
	<item>
		<title>SIRALAMA ALGORİTMALARI Seçerek Sıralama — Selection Sort</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sun, 12 Dec 2021 09:07:12 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=2337</guid>

					<description><![CDATA[Bu makalemde sizlere sıralama algoritmalarından biri olan &#8220;Seçerek Sıralama (Selection Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Anlaşılması en kolay algoritmalardan bir tanesidir. Zaten kodunu okuyunca ne kadar basit olduğunu anlayacaksınız. Ben yine de her bir kod işleminin çıktısını resimlerle göstermeye çalıştım. Bu algoritmada dizinin bir ucundan başlanır. Diğer [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Bu makalemde sizlere  sıralama algoritmalarından biri olan  &#8220;Seçerek Sıralama (Selection Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. </p>



<p>Anlaşılması en kolay algoritmalardan bir tanesidir. Zaten kodunu okuyunca ne kadar basit olduğunu anlayacaksınız. Ben yine de her bir kod işleminin çıktısını resimlerle göstermeye çalıştım. </p>



<p>Bu algoritmada dizinin bir ucundan başlanır. Diğer uçtaki eleman sıralama için seçilen ilk değerdir. Bir ucundan diğer ucuna doğru her eleman için seçilen değer ile karşılaştırma yapılır. Eğer dizi elemanı seçilen değere göre aranan ise dizi elemanı, yeni seçilen değer olur. Dizinin kalan elemanları yeni seçilen değer ile karşılaştırılır.</p>



<p>Örneğin bir sayı dizisinde dizinin başından sonuna doğru küçükten büyüğe sıralama yapılmak istensin.  Her döngüde dizinin sonundaki eleman, en küçük sayı kabul edilir. Dizinin başından sonuna kadar (son eleman  hariç)  tüm sayılar en küçük sayı ile karşılaştırılır. Eğer karşılaştırılan sayı daha küçükse artık bu dizi elemanı en küçük kabul edilir. Dizinin sonuna gelince dizinin ilk elemanı ile en küçük kabul edilen eleman yer değiştirir. Sonra dizinin 2 elemanından başlanarak aynı yöntem uygulanır. Eleman sayısının bir eksiği kadar bu döngü tekrarlanmış olur.  Sonunda dizi sıralanmış olur.</p>



<blockquote class="wp-block-quote is-style-default"><p><span style="color:#9b9b9b" class="tadv-color">Bazılarına göre bu algoritmanın tek bir olumlu yanı var . Eğer elaman gerçek yerinde ise yer değiştirme işlemine gerek olmaması. Kümenin karışıklığına göre bu fikir değişir. Bu durumu beklemek tabiki manasız. Ancak bazı durumlarda kümenin böyle bir durumda olduğunu öngörebilirsiniz. Örneğin elimizde sıralı bir dizi olsun. Biliyoruz ki bazı küçük işlemler dizinin sırasını bir miktar bozuyor. Bu dizinin sıralaması için bu algoritmayı kullanılabiliriz.</span></p><p></p></blockquote>



<p> <strong>Basit bir kod parçası ile göstermek gerekirse;</strong> </p>



<p>Yukarıdaki örnekte bahsedildiği üzere algoritmanın gerçekleşmesi için 2 adet döngüye ihtiyaç vardır.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">int[]? dizi = null;
if (!isValid(out dizi))
    return;

if (dizi == null) return;

int enkucuk;
int index;

//1. elemanından başlıyoruz.
for (int i = 0; i &lt;= (dizi.Length - 1); i++)
{
    //son eleman en küçük kabul edilir.
    enkucuk = dizi[dizi.Length - 1];
    index = dizi.Length - 1;

    for (int j = i; j &lt; (dizi.Length - 1); j++)//daha küçüğü aranır
    {
        if (dizi[j] &lt; enkucuk)
        {
            enkucuk = dizi[j];
            index = j;
        }
    }
    dizi[index] = dizi[i];
    dizi[i] = enkucuk;
}
</pre>



<div class="wp-block-di-blocks-headline" id="di-blocks-heading-8d34483c-8d37-4bdb-86f4-fc836ae8ffe6"><div class="di-blocks-heading di-blocks-outer"><h3 class="di-blocks-align-left di-blocks-heading-main" data-animate=""><br>Bir dizide algoritmayı adım adım işletelim</h3></div></div>



<p></p>



<p>Sıralanması nı istediğimiz dizi&nbsp;<strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>



<p>Dizimizin ilk hali&nbsp;<img decoding="async" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30"></p>



<p>Her bir döngü için program çıktısı aşağıdaki resimlerde gösterildiği gibi olur. </p>



<figure class="wp-block-image size-full"><img decoding="async" fetchpriority="high" width="741" height="411" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image.png" alt="" class="wp-image-2342" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image.png 741w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-300x166.png 300w" sizes="(max-width: 741px) 100vw, 741px" /><figcaption>Selection Sort 1. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="743" height="377" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1.png" alt="" class="wp-image-2343" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1.png 743w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1-300x152.png 300w" sizes="(max-width: 743px) 100vw, 743px" /><figcaption>Selection Sort 2. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="732" height="334" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2.png" alt="" class="wp-image-2344" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2.png 732w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2-300x137.png 300w" sizes="(max-width: 732px) 100vw, 732px" /><figcaption>Selection Sort 3. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="733" height="303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3.png" alt="" class="wp-image-2345" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3.png 733w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3-300x124.png 300w" sizes="(max-width: 733px) 100vw, 733px" /><figcaption>Selection Sort 4. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="739" height="257" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4.png" alt="" class="wp-image-2346" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4.png 739w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4-300x104.png 300w" sizes="(max-width: 739px) 100vw, 739px" /><figcaption>Selection Sort 5. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="739" height="215" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5.png" alt="" class="wp-image-2347" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5.png 739w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5-300x87.png 300w" sizes="(max-width: 739px) 100vw, 739px" /><figcaption>Selection Sort 6. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="743" height="175" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6.png" alt="" class="wp-image-2348" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6.png 743w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6-300x71.png 300w" sizes="(max-width: 743px) 100vw, 743px" /><figcaption>Selection Sort 7. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="737" height="126" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7.png" alt="" class="wp-image-2349" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7.png 737w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7-300x51.png 300w" sizes="(max-width: 737px) 100vw, 737px" /><figcaption>Selection Sort 8. Döngü</figcaption></figure>



<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<div class="wp-block-kioken-icon kt-svg-icons kt-svg-icons_7e09f7-c8 alignleft" style="text-align:center"><div class="kt-svg-style-default kt-svg-icon-wrap kt-svg-item-0"><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms" class="kt-svg-icon-link" target="_blank" rel="noreferrer noopener"><div style="display:inline-flex;justify-content:center;align-items:center;color:#444444" class="kt-svg-icon kt-svg-icon-fe_github"><svg viewbox="0 0 24 24" height="34" width="34" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg></div></a></div></div>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SIRALAMA ALGORİTMALARI Birleşmeli Sıralama (Merge Sort)</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Tue, 07 Dec 2021 21:22:10 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1468</guid>

					<description><![CDATA[Bu makalemde sizlere &#8220;Birleşmeli Sıralama (Merge Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz. Merge sort böl ve yönet yaklaşımına dayanır. Sürekli dizinin ortadan ikiye bölünmesi ile yürütülür. Bu davranışı rekürsif tasarlanabileceğini gösterir. Her parçalama işlemi ile oluşan kümeler aynı yöntem ile parçalanır. Yani [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Bu makalemde sizlere &#8220;Birleşmeli Sıralama (Merge Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz.</p>



<p></p>



<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#f7c24e;">Algoritma Hakkında</div>



<p>Merge sort böl ve yönet yaklaşımına dayanır. Sürekli dizinin ortadan ikiye bölünmesi ile yürütülür. Bu davranışı rekürsif tasarlanabileceğini gösterir. Her parçalama işlemi ile oluşan kümeler aynı yöntem ile parçalanır. Yani alt kümede 1 adet eleman kalıncaya kadar 2 adet parçalara bölünür.  Bir adet eleman kalınca da rekürsif dönüşler başlar.  Geriye dönüşlerde alt küme elemanlarının sıralanması işlemi yapılır. Her geri dönüşte alt küme üst küme ile birleştirilir. Algoritma adını bu birleştirme işleminden almıştır.</p>



<p><strong>Basit bir kod parçası ile göstermek gerekirse;</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">bol(Dizi[],sol,sag)
{
   if(sol&lt;sag)                       
   {
      int orta=(sol+sag)/2;
      bol(D,sol,orta);
      bol(D,orta+1,sag);
      birlestir(D,sol,orta,sag);
   }
}</pre>



<div class="wp-block-kioken-visual-list kb-icon-list-items kb-icon-list-items_168736-c3 kb-icon-list-columns-1 alignnone"><ul class="kb-icon-list"><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-0"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Sol index sağ indexten küçük mü?</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-1"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Hayır. Demek ki tek eleman kalmış. Bölünemez.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-2"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Evet;</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-3"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Bölünecek dizinin ortasını bul.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-4"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Bölünen kümeleri de parçala.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-5"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Kısmi sıralanmış kümeleri sıralayarak birleştir.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-6"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Son<span data-mce-type="bookmark" id="mce_1_start" data-mce-style="overflow:hidden;line-height:0px" style="overflow:hidden;line-height:0px"></span><span data-mce-type="bookmark" id="mce_1_start" data-mce-style="overflow:hidden;line-height:0px" style="overflow:hidden;line-height:0px"></span></span></li></ul></div>



<p><span style="color:#351c0d" class="has-inline-color">Yukarıdaki kod örneğine göre algoritma basit gibi görünse de geçekleştirilmesi diğer sıralama algoritmalarına göre daha karmaşıktır. </span></p>



<p>Sıralanmak istenen  elemanlar bir dizi ile tutuluyorsa parçalamak kolay, birleştirilmesi zordur. Bağlı listede tutuluyorsa parçalanması zor, birleştirilmesi kolaydır. Dizi üzerinde tutulan parçaların birleştirilmesi için ek dizi alanlarına ihtiyaç vardır.  Bağlı listede  de orta elemana doğrudan erişim olmadığı için parçalamada zaman maliyeti fazla olur. Eğer eleman sayısı biliniyorsa <strong>N/2</strong> çevrim yapılır.</p>



<p><strong>Dizi bazlı veri setinde;</strong></p>



<p>Heap Sort algoritması Merge Sort algoritmasına göre daha az bellek kullanır ve daha hızlı çalışır. Aynı şekilde bellek tabanlı dizi kullanımında Quick Sort algoritması daha hızlı çalışır. </p>



<p><strong>Bağlı listelerde;</strong></p>



<p>Bağlı listelerde sıralama yapılmak istenirse Merge Sort algoritması seçilebilir. Çünkü performans açısından daha iyi olabilmektedir. Heap Sort algoritmasının kullanımı imkansızdır. Quick Sort için ise performansın düşmesin beklenir.</p>



<p></p>



<div class="wp-block-di-blocks-headline" id="di-blocks-heading-301cac53-65c2-42ee-a19f-3df9a0e397f4"><div class="di-blocks-heading di-blocks-outer"><h3 class="di-blocks-align-left di-blocks-heading-main" data-animate=""><br>Bir dizide algoritmayı adım adım işletelim</h3></div></div>



<p></p>



<p>Sıralanması nı istediğimiz dizi&nbsp;<strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>



<p>Dizimizin ilk hali&nbsp;<img decoding="async" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30"></p>



<p>Aşağıda adım adım işlemler sıralanmaktadır. her bir düngüde mavi kutucuklar karşılaştırılan sayıları göstermektedir. yeşil kutucuklar ise yer değiştirme sonrası halini göstermektedir. Kırmızı kutular ise yerini bulmuş elemanı gösterir.</p>



<p></p>



<div class="wp-block-stackable-image stk-block-image stk-block stk-553db46" data-block-id="553db46"><figure class="stk-img-wrapper stk-image--shape-stretch"><img decoding="async" class="stk-img wp-image-2334" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort.jpg" width="909" height="740" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort.jpg 909w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-300x244.jpg 300w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-768x625.jpg 768w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-810x659.jpg 810w" sizes="(max-width: 909px) 100vw, 909px" /></figure></div>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">class MergeSort
    {
        int[] dizi;
        public MergeSort(int[] dizi)
        {
            this.dizi = dizi;
        }

        public int[] Sort()
        {
            Sort(0, dizi.Length - 1);

            return dizi;
        }

        private void Sort(int sol, int sag)
        {
            if (sol &lt; sag)//Eleman sayısı 1 den büyük ise
            {

                //orta indexi bul
                int orta = (sol + sag) / 2;

                //Sol kümeyi böl sırala
                Sort(sol, orta);

                //Sağ kümeyi böl sırala
                Sort(orta + 1, sag);

                Birlestir(sol, orta, sag);//Bölüp sıraladıklarını birleştir.
            }
        }

        private void Birlestir(int sol, int orta, int sag)
        {
            int solElemanSayisi = orta - sol + 1;
            int sagElemanSayisi = sag - orta;

            int[] SOL = new int[solElemanSayisi];
            int[] SAG = new int[sagElemanSayisi];

            for (int t = 0; t &lt; solElemanSayisi; ++t)
                SOL[t] = dizi[sol + t];

            for (int z = 0; z &lt; sagElemanSayisi; ++z)
                SAG[z] = dizi[orta + 1 + z];

            int i = 0, j = 0;
            int k = sol;
            while (i &lt; solElemanSayisi &amp;&amp; j &lt; sagElemanSayisi)
            {
                //Soldaki sayi sağdakinden küçük eşitse diziye önce onu koy.
                if (SOL[i] &lt;= SAG[j])
                {
                    dizi[k] = SOL[i];
                    i++;
                }

                //Sağdaki sayi soldakinden küçük eşitse diziye önce onu koy.
                else
                {
                    dizi[k] = SAG[j];
                    j++;
                }
                k++;
            }

            //SOL da kalanları diziye ekle
            while (i &lt; solElemanSayisi)
            {
                dizi[k] = SOL[i];
                i++;
                k++;
            }

            //SAĞ da kalanları diziye ekle
            while (j &lt; sagElemanSayisi)
            {
                dizi[k] = SAG[j];
                j++;
                k++;
            }

        }
    }</pre>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>



<p></p>



<p></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ARAMA ALGORİTMALARI Giriş ve Temel Kavramlar</title>
		<link>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sat, 07 Dec 2019 14:12:55 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[search algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1576</guid>

					<description><![CDATA[&#8220;Bilgi seti içerisinde bir anahtar sözcüğe dayalı olarak bilgiye erişme  ve başka bilgileri de elde etme işlemidir.&#8221;  Sayısal ortamdaki bilgilerin(verilerin)  anlamlı olarak kullanılması ve bu bilgiler ile işlemler gerçekleştirilmesi için bilginin var olup olmadığı varsa bellekte ya da veri seti içerisinde nerede olduğunun önemi vardır. Yani bilgiyi aramak ve bulmak gerekir.  Ancak bilginin türü ve [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p></p>


<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#000000;">Arama</div> <span style="color: #808080;"><em>&#8220;Bilgi seti içerisinde bir anahtar sözcüğe dayalı olarak bilgiye erişme  ve başka bilgileri de elde etme işlemidir.&#8221;  </em></span>Sayısal ortamdaki bilgilerin(verilerin)  anlamlı olarak kullanılması ve bu bilgiler ile işlemler gerçekleştirilmesi için bilginin var olup olmadığı varsa bellekte ya da veri seti içerisinde nerede olduğunun önemi vardır. Yani bilgiyi aramak ve bulmak gerekir.  Ancak bilginin türü ve bulunduğu ortama göre bir çok değişik yöntem ile arama işlemi gerçekleştirilir.  İşte bu yöntemlerin bir çoğu kabül görmüş bilinen arama algoritmalarıdır. Bu ders serimizde bu algoritmalar üzerinde tek tek inceleme yapmaya gayret göstereceğiz.</p>
<p>Ardışıl Arama (Sequential Search), en yalın arama yöntemidir. Bir veri seti içerisinde aranan veriyi bulmak amacıyla baştan sona doğru  yapılan tarama işlemidir. Kodlaması çok basittir ancak çalışma hızı çok düşüktür.  Genelde ikili arama algoritmaları yaygın olarak kullanılır.</p>
<p>Bir çok arama algoritmasında aşağıdaki üç husus dikkate alınır.</p>
<ul>
<li>Bellek kullanımı</li>
<li>Geçen zaman</li>
<li>Algoritmanın okunurluğu</li>
</ul>
<p>Veri setinin büyüklüğü,modeli ve arama işleminin gerçekleştirileceği ortama göre bu 3 hususta öncelik değişkenlik gösterir.</p>
<p>Şimdi arama algoritmalarında kullanılan bazı kavramlardan bahsedelim. Ayrıca veri seti önceden sıralı ise arama işlemi daha basit olacaktır ya da arama algoritması değişiklik gösterecektir.</p>
<p><strong>Anahtar Sözcük (Keyword):</strong> Arama işlemi belli bir veya birkaç bilgi için gerçekleştirilir. Bu bilgi parçası bir sayısal veri, cümle, tarih, vb. olabileceği gibi tüm bunların biraraya gelmesinden de oluşabilir. Anahtar sözcükler genelde küçük ve sadedirler. Küçüklük ve sadelikleri aksi yönde değiştikçe algoritmaların sonuç üretmesi de zorlaşacak ve zaman alacaktır.</p>
<p><strong>Harici Arama( External Search): </strong>Arama işleminin gerçekleştirileceği veri seti eğer bir disk/disket/ usb/ cd ve harici bir saklama biriminde tutuluyor ise bu verinin arama işlemine harici arama denir.</p>
<p><strong>Dahili Arama( internal Search): </strong>Arama işleminin gerçekleştirileceği veri seti RAM gibi erişimi çok hızlı belleklerde tutuluyor ise bu verinin arama işlemine dahili arama denir.</p>
<p>Yukarıda tanımını yaptığım harici ve dahili arama, algoritmanın seçimini en çok etkileyen özelliklerden bir tanesidir. Harici arama işlemlerinde verilerin yer değişiminin az olmasını sağlayan algoritmalar seçilir. Çünkü harici depolama birimlerinde bu işlemler daha yavaş olacaktır. Kullanacağınız arama algoritması ne kadar hızlı olursa olsun çok fazla yer değişimi yapıyor ise yavaş işlem yapacağından olumlu sonuç alamayacaksınız. Dahili arama işlemlerinde ise verinin bellekte tutulamayacak kadar büyük olmaması gerekir.</p>
<p><strong>Birincil Anahtar Sözcük: </strong>Anahtar sözcüğün aldığı değerin her kayıt için farklı olmasıdır. Birincil anahtar sözcük bir veri setinde aranırken ilk bulunduğu yerde arama algoritması tamamlanır. Diğer veri öğelerine bakılmaz.</p>
<p><strong>İkincil Anahtar Sözcük: </strong>Farklı kayıtlar için aynı anahtar sözcüğün kullanılmasıdır. İkincil anahtar sözcük bir veri setinde aranırken tüm veri setinde arama algoritması tamamlanır.</p>
<p>Örneğin bir personel uygulamasında T.C. Kimlik Numarası birincil anahtar sözcüktür. Ancak personel adı ikincil anahtar sözcüktür.</p>
<p>Ayrıca arama algoritmalarını hızlandırmak adına bir çok düzenlemeler mevcuttur. Veri tabanında kullanılan indexler, konsolide edilmiş datalar bunlara örnektir.</p>
<p>Arama algoritmaları 3 temel sınıfta toplanır.Bunlar;</p>
<ol>
<li>İkili Arama</li>
<li>Bir Çırpıda Arama</li>
<li>Doğrusal Arama</li>
</ol>]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SIRALAMA ALGORİTMALARI &#8211; Kabarcık (Bubble Sort) Sıralaması</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-kabarcikbubble-sort-siralamasi/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-kabarcikbubble-sort-siralamasi/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sun, 10 Nov 2019 19:47:33 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1344</guid>

					<description><![CDATA[Bu makalemde sizlere &#8220;Kabarcık(Bubble Sort) Sıralaması&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz. &#160; Temel olan, karışık düzende verilmiş bir dizide&#160; &#160;elemanlar içerisinde ilerlerken komşu iki elemanın birbiri ile yer değiştirmesidir. Her adımda komşu iki eleman karşılaştırılır, gerekirse yer değiştirilir.&#160; Bu algoritma iki [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Bu makalemde sizlere &#8220;Kabarcık(Bubble Sort) Sıralaması&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz.</p>



<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#f7c24e;">Algoritma Hakkında</div>



<p>Temel olan, karışık düzende verilmiş bir dizide&nbsp; &nbsp;elemanlar içerisinde ilerlerken komşu iki elemanın birbiri ile yer değiştirmesidir. Her adımda komşu iki eleman karşılaştırılır, gerekirse yer değiştirilir.&nbsp; Bu algoritma iki döngü ile yapılır. İlk döngü elemanlar arasında geçişi, diğer döngü&nbsp;ise yerleştirme işlemi içindir. Bu algoritmanın zaman karmaşıklığı <strong>O(n²)</strong> dir.&nbsp; Eğer dizide x kadar eleman sıralı değilse, zaman karmaşıklığı ise&nbsp;<strong>&nbsp;O(xn)</strong> dir. Kodlaması oldukça basit olmasına rağmen etkin bir algoritma değildir. Belki geneli sıralı olan dizileri düzeltmek için ve eleman sayısı çok olmayan diziler için kullanılabilir.</p>



<p>Ayrıca bir kaydırma işlemi olması sebebi ile harici bir sıralama yapılırken çok fazla yazma ve okuma işlemi olacağından maliyetli bir algoritmadır.&nbsp; </p>



<div class="wp-block-di-blocks-headline" id="di-blocks-heading-29ae2588-a02b-49e3-9fae-da7de3416bd9"><div class="di-blocks-heading di-blocks-outer"><h3 class="di-blocks-align-left di-blocks-heading-main" data-animate="">Bir dizide algoritmayı adım adım işletelim</h3></div></div>



<p></p>



<p>Sıralanması nı istediğimiz dizi&nbsp;<strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>



<p>Dizimizin ilk hali&nbsp;<img decoding="async" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30"></p>



<p>Aşağıda adım adım işlemler sıralanmaktadır. her bir düngüde mavi kutucuklar karşılaştırılan sayıları göstermektedir. yeşil kutucuklar ise yer değiştirme sonrası halini göstermektedir. Kırmızı kutular ise yerini bulmuş elemanı gösterir.</p>



<p></p>


<h4>1. Döngü</h4>
<table style="border-collapse: collapse; width: 100%; height: 436px;">
<tbody>
<tr style="height: 109px;">
<td style="width: 50%; height: 109px;"><strong>1. ADIM:</strong><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-01.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-01-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%; height: 109px;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-02-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-02-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr style="height: 109px;">
<td style="width: 50%; height: 109px;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-03-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-03-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%; height: 109px;"><strong>4. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-04-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-04-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr style="height: 109px;">
<td style="width: 50%; height: 109px;"><strong>5. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-05-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-05-2.jpg" alt="" width="270" height="30"></strong></td>
<td style="width: 50%; height: 109px;"><strong>6. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-06-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-06-2.jpg" alt="" width="270" height="30"></strong></td>
</tr>
<tr style="height: 109px;">
<td style="width: 50%; height: 109px;"><strong>7. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-07-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-07-2.jpg" alt="" width="270" height="30"></strong></td>
<td style="width: 50%; height: 109px;"><strong>8. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-08-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-08-2.jpg" alt="" width="270" height="30"></strong></td>
</tr>
</tbody>
</table>
<p><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-08-3.jpg" alt="" width="270" height="30"></p>
<h4>2. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-09-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-09-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-10-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-10-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-11-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-11-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>4. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-12-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-12-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>5. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-13-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-13-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>6. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-14-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-14-2.jpg" alt="" width="270" height="30"></strong></td>
</tr>
<tr>
<td style="width: 50%;"><strong>7. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-15-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-15-2.jpg" alt="" width="270" height="30"></strong></td>
<td style="width: 50%;"><strong>&nbsp;</strong></td>
</tr>
</tbody>
</table>
<p style="text-align: left;"><strong>Sonucu : </strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-15-3.jpg" alt="" width="270" height="30"></p>
<h4>3. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-16-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-16-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-17-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-17-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-18-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-18-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>4. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-19-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-19-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>5. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-20-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-20-2.jpg" alt="" width="270" height="30"></strong></td>
<td style="width: 50%;"><strong>6. ADIM: <br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-21-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-21-2.jpg" alt="" width="270" height="30"></strong></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu : </strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-21-3.jpg" alt="" width="270" height="30"></p>
<h4>4. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-22-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-22-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-23-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-23-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-24-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-24-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>4. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-25-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-25-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>5. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-26-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-26-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;">&nbsp;</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-26-3.jpg" alt="" width="270" height="30"></p>
<h4>5. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-27-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-27-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-28-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-28-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-29-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-29-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>4. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-30-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-30-2.jpg" alt="" width="270" height="30"></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-30-3.jpg" alt="" width="270" height="30"></p>
<h4>6. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-31-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-31-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-32-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-32-2.jpg" alt="" width="270" height="30"></td>
</tr>
<tr>
<td style="width: 50%;"><strong>3. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-33-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-33-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;">&nbsp;</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-33-3.jpg" alt="" width="270" height="30"></p>
<h4>7. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 50%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-34-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-34-2.jpg" alt="" width="270" height="30"></td>
<td style="width: 50%;"><strong>2. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-35-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-35-2.jpg" alt="" width="270" height="30"></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-35-3.jpg" alt="" width="270" height="30"></p>
<h4>8. Döngü</h4>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 100%;"><strong>1. ADIM: </strong><br><img decoding="async" class="aligncenter size-full wp-image-1356" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-36-1.jpg" alt="" width="270" height="30"><img decoding="async" class="aligncenter size-full wp-image-1357" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-36-2.jpg" alt="" width="270" height="30"></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><strong>Sonucu :</strong><img decoding="async" class="size-full wp-image-1357 alignright" style="margin: 2px !important;" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/buble-36-3.jpg" alt="" width="270" height="30"></p>


<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="true" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">private static void bubblesort(int[] array)
       {
           //eleman sayısı
           var n = array.Length;
           //Ana döngüyü oluşturuyoruz.
           //dizinin eleman sayısının 1 eksiği kadar döngü gerçekleşmeli.
           for (int dongu = 0; dongu &lt; (n - 1); dongu++)
           {
               //her düngüde 1 eleman yerleşeceği için adım sayısı önceki döngüye göre 1 eksik olmalıdır.
               for (int i = 0; i &lt; n - 1 - dongu; i++)
               {
                   var e1 = array[i];
                   var e2 = array[i + 1];
                   //sıralı ise bir sonraki adıma geç.
                   if (e1 &lt;= e2)
                       continue;
                   //sıralı değilse yer değiştir.  
                   array[i] = e2;
                   array[i + 1] = e1;
               }
           }
       }</pre>



<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-kabarcikbubble-sort-siralamasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SIRALAMA ALGORİTMALARI Araya Sokma Sıralaması &#8211; Insertion Sort</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-araya-sokmainsertion-siralamasi/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-araya-sokmainsertion-siralamasi/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Tue, 05 Nov 2019 22:07:05 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1146</guid>

					<description><![CDATA[Karışık düzende verilmiş bir dizide ilk sıradan başlamak üzere her bir değeri olması gereken yere yerleştirme şeklinde çalışır. Sıralanacak veri setinin ilk elemanının yerinde bırakılması ve sırayla sonraki elemanların teker teker alınıp öncekilerin diziliminde uygun olacak yere konulması ile yapılan işlemdir. İlk eleman kendi yerinde bırakılır. Sonrasında ikinci eleman birincisi ile karşılaştırılarak önüne veya ardına [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#f7c24e;">Algoritma Hakkında</div>
<p class="graf graf--p">Karışık düzende verilmiş bir dizide ilk sıradan başlamak üzere her bir değeri olması gereken yere yerleştirme şeklinde çalışır. Sıralanacak veri setinin ilk elemanının yerinde bırakılması ve sırayla sonraki elemanların teker teker alınıp öncekilerin diziliminde uygun olacak yere konulması ile yapılan işlemdir. İlk eleman kendi yerinde bırakılır. Sonrasında ikinci eleman birincisi ile karşılaştırılarak önüne veya ardına yerleştirilir. Sonraki eleman alınır. Sıralanmış dizi içerisinde uygun olan yere ( en öne, aralarına veya en sona) yerleştirilir. Bu işlem tüm elemanlar için gerçekleştirilerek sıralama işlemi yapılır.</p>
<p style="text-align: justify;">Şöyle ki, sıralanacak olan dizi iki parçaya bölünür. Bir taraf sıralı parçadır. Diğer taraf ise sırasız parçadır.  Programlaması oldukça basit bir algoritmadır. Ancak performans açısında çok hızlı olduğu söylenemez. Çünkü sıralanmış kısımda araya sokulacak elemanın yerini bulma ve kalanları kaydırma işlemleri gerekir. n elemanlı karışık bir dizinin çözümü n-1 adımda gerçekleşir. Aslında bu algoritma sıralı olan herhangi bir dizi içerisine  sıralı olma durumunu bozmadan yeni elemanlar eklemek için uygundur. Sıralı bir dizide bu algoritma ile yeni bir eleman eklemenin zaman karmaşıklığı <strong>O(n)</strong> dir. Sıralı olmayan bir dizide bu algoritma ile yeni bir eleman eklemenin zaman karmaşıklığı ise <strong> O(n²)</strong> dir.</p>
<div class="mks_pullquote mks_pullquote_left" style="width:600px; font-size: 18px; color: #ffffff; background-color:#f7c24e;">Bir dizide algoritmayı adım adım işletelim.</div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Sıralanması nı istediğimiz dizi <strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>
<p>Dizimizin ilk hali <img decoding="async" class="aligncenter size-full wp-image-1263" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30" /></p>
<p>Aşağıda adım adım işlemler sıralanmaktadır.</p>
<p> </p>
<div><div class="mks_tabs vertical"><div class="mks_tabs_nav"></div><div class="mks_tab_item"><div class="nav">1.Adım</div> Araya Sokulacak Eleman:<strong> 9</strong> <img decoding="async" class="aligncenter size-full wp-image-1265" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-02.jpg" alt="" width="270" height="30" /> 9 rakamı ilk eleman olduğu için olduğu yerde bırakıyoruz.
<p> </p>
<p> </p>
<p> </p>
</div> <div class="mks_tab_item"><div class="nav">2.Adım</div> Araya Sokulacak Eleman:<strong> 4</strong> <img decoding="async" class="aligncenter size-full wp-image-1294" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-03.jpg" alt="" width="270" height="30" /><img decoding="async" class="aligncenter size-full wp-image-1295" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-04.jpg" alt="" width="270" height="30" /><img decoding="async" class="aligncenter size-full wp-image-1296" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-05.jpg" alt="" width="270" height="30" /><br />4 sayısı için uygun yeri arıyoruz. 4 sayısı 9 un yerine geçmelidir. Bu nedenle 9 ve 9&#8217;dan sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 4 sayısı boşalan yere geçer.<br /></div> <div class="mks_tab_item"><div class="nav">3.Adım</div> Araya Sokulacak Eleman:<strong> 5</strong> <img decoding="async" class="aligncenter size-full wp-image-1298" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-06.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1299" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-07.jpg" alt="" width="270" height="30" /><img decoding="async" class="aligncenter size-full wp-image-1300" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-08.jpg" alt="" width="270" height="30" /><br />5 sayısı için uygun yeri arıyoruz. 5 sayısı 9 un yerine geçmelidir. Bu nedenle 9 ve 9&#8217;dan sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 5 sayısı boşalan yere geçer.<br /></div> <div class="mks_tab_item"><div class="nav">4.Adım</div> Araya Sokulacak Eleman:<strong> 3</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-09.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-10.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-11.jpg" alt="" width="270" height="30" /><br />3 sayısı için uygun yeri arıyoruz. 3 sayısı 4 un yerine geçmelidir. Bu nedenle 4 ve 4&#8217;ten sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 3 sayısı boşalan yere geçer.<br /></div> <div class="mks_tab_item"><div class="nav">5.Adım</div> Araya Sokulacak Eleman:<strong> 2</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-12.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-13.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-14.jpg" alt="" width="270" height="30" /><br />2 sayısı için uygun yeri arıyoruz. 2 sayısı 3 ün yerine geçmelidir. Bu nedenle 3 ve 3&#8217;ten sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 2 sayısı boşalan yere geçer.<br /></div><div class="mks_tab_item"><div class="nav">6.Adım</div> Araya Sokulacak Eleman:<strong> 1</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-15.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-16.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-17.jpg" alt="" width="270" height="30" /><br />1 sayısı için uygun yeri arıyoruz. 1 sayısı 2 nin yerine geçmelidir. Bu nedenle 2 ve 2&#8217;den sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 1 sayısı boşalan yere geçer.<br /></div><div class="mks_tab_item"><div class="nav">7.Adım</div> Araya Sokulacak Eleman:<strong> 8</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-18.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-19.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-20.jpg" alt="" width="270" height="30" /><br />8 sayısı için uygun yeri arıyoruz. 8 sayısı 9 un yerine geçmelidir. Bu nedenle 9 ve 9&#8217;dan sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 9 sayısı boşalan yere geçer.<br /></div><div class="mks_tab_item"><div class="nav">8.Adım</div> Araya Sokulacak Eleman:<strong> 6</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-21.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-22.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-23.jpg" alt="" width="270" height="30" /><br />6 sayısı için uygun yeri arıyoruz. 6 sayısı 8 nin yerine geçmelidir. Bu nedenle 8 ve 8&#8217;den sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 6 sayısı boşalan yere geçer.<br /></div><div class="mks_tab_item"><div class="nav">9.Adım</div> Araya Sokulacak Eleman:<strong> 7</strong> <img decoding="async" class="aligncenter size-full wp-image-1302" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-24.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-25.jpg" alt="" width="270" height="30" /> <img decoding="async" class="aligncenter size-full wp-image-1304" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-26.jpg" alt="" width="270" height="30" /><br />7 sayısı için uygun yeri arıyoruz. 7 sayısı 8 nin yerine geçmelidir. Bu nedenle 8 ve 8&#8217;den sonraki tüm sıralanmış elemanlar bir adım sağa doğru boşluğu dolduracak şekilde ilerletilir. 7 sayısı boşalan yere geçer.<br /></div></div>
</div>
<pre class="EnlighterJSRAW" data-enlighter-language="csharp">private static void insertionSort(int[] array)
{
    //dizinin ilk elemanını yerinde bıraktık.

    //2. elemanından başlıyoruz.
    for (int i = 1; i &lt;= (array.Length - 1); i++)
    {
        //araya sokacağımız veriyi tutuyoruz.
        var current = array[i];

        //hangi indexte bulunduğumuzu tutuyoruz.
        int currentRealIndex = i;

        //sola doğru yani sıralanmış kayıtlar arasında tarama yapıyoruz.
        //Sayımızın büyük olduğu elemana kadar ilerleyip araya sokacağımız index değerini buluyoruz.
        for (int j = i - 1; j &gt;= 0 &amp;&amp; currentRealIndex&gt;0; j--)
        {
            if (array[j] &lt; current)
                break;

            currentRealIndex--;
        }

        //araya sokulacak indexten sonraki tüm elemanları bir adım sağa kaydırıyoruz.
        for (int j = i; j &gt; currentRealIndex; j--)
        {
            array[j] = array[j - 1];
        }

        //araya elemanımızı yerleştiriyoruz.
        array[currentRealIndex] = current;
    }
}</pre>


<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-araya-sokmainsertion-siralamasi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SIRALAMA ALGORİTMALARI Giriş ve Temel Kavramlar</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-ders-1-giris/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-ders-1-giris/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Wed, 30 Oct 2019 21:47:50 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1094</guid>

					<description><![CDATA[&#8220;Belirli bir düzene göre yerleştirmek veya düzenlemek, sıraya koymak&#8221;, &#8220;Birbiri ardı sıra veya yan yana koyarak sıra durumuna getirmek&#8221;&#8230;&#160; Sayısal ortamda ki bilgilerin(verilerin) bir anahtar bilgiye(veriye) göre sıralı erişilmesini sağlayan belli bir anlam kazanması için yapılan düzenlemedir. Yazılım ve donanım sistemlerinde sıralamanın önemi çok büyüktür. Sıralanmış bir veri sadeleştiği için işlemler kolaylaşır ve hızlanır. Günümüz [&#8230;]]]></description>
										<content:encoded><![CDATA[<div align="justify">
<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#000000;">Nedir sıralamak?</div> <span style="color: #808080;"><em>&#8220;Belirli bir düzene göre yerleştirmek veya düzenlemek, sıraya koymak&#8221;, &#8220;Birbiri ardı sıra veya yan yana koyarak sıra durumuna getirmek&#8221;&#8230;&nbsp; </em></span>Sayısal ortamda ki bilgilerin(verilerin) bir anahtar bilgiye(veriye) göre sıralı erişilmesini sağlayan belli bir anlam kazanması için yapılan düzenlemedir. Yazılım ve donanım sistemlerinde sıralamanın önemi çok büyüktür. Sıralanmış bir veri sadeleştiği için işlemler kolaylaşır ve hızlanır. Günümüz teknolojisinde sadelik ve hız ne kadar önemli olduğunu her bilişimci çok iyi bilir.Çok sayıda sıralama algoritması vardır. Verinin büyüklüğü, sayısı, geliş sırası, veri modeli vb. özellikler hangi algoritmanın daha kullanılacağını belirler. Bu algoritmalar rastgele bir yerleşime sahip olan dağınık veri kümesinin düzenlenmesi işini gerçekleştirir.&nbsp; Şimdi sıralama algoritmalarında kullanılan bazı kavramlardan bahsedelim.</p>
<p><strong>Anahtar Sözcük (Keyword):</strong> Sıralama işleminin gerçekleştirilmesi için bir bilgi parçasına ihtiyacı vardır. Bu bilgi parçası bir sayısal veri, cümle, tarih, vb. olabileceği gibi tüm bunların biraraya gelmesinden de oluşabilir. Anahtar sözcükler genelde küçük ve sadedirler. Küçüklük ve sadelikleri aksi yönde değiştikçe algoritmaların sonuç üretmesi de zorlaşacak ve zaman alacaktır.</p>
<p><strong>Harici Sıralama( External Sorting): </strong>Sıralanmak istenen veri eğer bir disk/disket/ usb/ cd ve harici bir saklama biriminde tutuluyor ise bu verinin sıralama işlemine harici sıralama denir.</p>
<p><strong>Dahili Sıralama( internal Sorting): </strong>Sıralanmak istenen veri RAM gibi erişimi çok hızlı belleklerde tutuluyor ise bu verinin sıralama işlemine dahili sıralama denir.</p>
<p>Yukarıda tanımını yaptığım harici ve dahili sıralama, algoritmanın seçimini en çok etkileyen özelliklerden bir tanesidir. Harici sıralama işlemlerinde verilerin yer değişiminin az olmasını sağlayan algoritmalar seçilir. Çünkü harici depolama birimlerinde bu işlemler daha yavaş olacaktır. Kullanacağınız sıralama algoritması ne kadar hızlı olursa olsun çok fazla yer değişimi yapıyor ise yavaş işlem yapacağından olumlu sonuç alamayacaksınız. Dahili sıralama işlemlerinde ise verinin bellekte tutulamayacak kadar büyük olmaması gerekir.</p>
<p><strong>İndexleme(indexed file structure):</strong> Dizinli dosya yapısı da denilebilir. Verilerin çok büyük olduğu kümelerde verileri sıralamakla uğraşılmaz. Bunun yerine her bir veriye tekil bir anahtar numarası verilir. Asıl verilerin yerleşimlerinde kesinlikle bir sıralama yapılmaz. Bunun yerine anahtar numaraları ve özellikleri kullanılarak sıralama yapılır. Özetle gerçek veriler harici/daha yavaş depolama birimlerinde sırası bir şekilde tutulurken anahtarları dahili yani bellekte sıralanırlar. Herhangi bir veriye ulaşılmak istendiğinde indexlenmiş anahtar kümesinden dosyanın yoluna ulaşılır ve dosya harici depolamadan kolaylıkla okunur.</p>
<i class="fa fa-exclamation" style="color: #000000"></i> Bir sıralama algoritması için iki adet çok önemli unsur bulunmaktadır.</p>
<ul>
<li>Yürütme Zamanı</li>
<li>Gereken Bellek Alanı</li>
</ul>
<p>Yürütme zamanı algoritmanın geliştirildiği kod parçası ve sıralama işleminin hangi fiziksel ortamda yapıldığına bağlıdır. Gerekli bellek alanı ise kullanılacak algoritma ile belli olur.</p>
<p>Şimdi arkadaşlar sıralama algoritmalarının zaman karmaşıklıklarını, uygulandığı veri modelini ve uygun olduğu bellek ortamını aşağıdaki tabloda paylaştım.</p>

<table id="tablepress-1" class="tablepress tablepress-id-1">
<thead>
<tr class="row-1 odd">
	<th class="column-1">Sıralama Algoritması</th><th class="column-2">Uygun Olduğu Bellek Ortamı</th><th class="column-3">Veri Modeli</th><th class="column-4">Karmaşıklık/En İyi</th><th class="column-5">Karmaşıklık/Orta</th><th class="column-6">Karmaşıklık/En Kötü</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">Selection Sort</td><td class="column-2">Dahili, Harici</td><td class="column-3">Bağlantılı Liste, Dizi</td><td class="column-4">0.5*n²</td><td class="column-5">0.5*n²</td><td class="column-6">-</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">Quick Sort</td><td class="column-2">Dahili</td><td class="column-3">Dizi, Ağaç</td><td class="column-4">0.5*n² </td><td class="column-5">n*logn</td><td class="column-6">-</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">Merge Sort</td><td class="column-2">Dahili, Harici</td><td class="column-3">Bağlantılı Liste, Liste, Dizi</td><td class="column-4">3*n*logn</td><td class="column-5">-</td><td class="column-6">-</td>
</tr>
<tr class="row-5 odd">
	<td class="column-1">Insertion Sort</td><td class="column-2">Dahili</td><td class="column-3">Bağlantılı Liste, Dizi</td><td class="column-4">0.5*n² </td><td class="column-5">0.25*n²</td><td class="column-6">-</td>
</tr>
<tr class="row-6 even">
	<td class="column-1">Heap Sort</td><td class="column-2">Dahili</td><td class="column-3">Bağlantılı Liste, Liste</td><td class="column-4">n*logn</td><td class="column-5">3/4*(n*logn)</td><td class="column-6">-</td>
</tr>
<tr class="row-7 odd">
	<td class="column-1">Bubble Sort</td><td class="column-2">Dahili</td><td class="column-3">Bağlantılı Liste, Dizi</td><td class="column-4">-</td><td class="column-5">-</td><td class="column-6">n²</td>
</tr>
</tbody>
</table>
<!-- #tablepress-1 from cache -->
</div>


<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-ders-1-giris/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
