<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Hızlı Sıralama Algoritması (Quick Sort Algorithm)</title>
	<atom:link href="http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/</link>
	<description>www.bilgisayarkavramlari.com</description>
	<lastBuildDate>Wed, 01 Sep 2010 00:47:42 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Şadi Evren ŞEKER</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-41609</link>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		<pubDate>Tue, 20 Jul 2010 01:26:48 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-41609</guid>
		<description>Sorunuzun cevabı, basitçe çalıştırmaz!

Bakın bahsettiğiniz kod parçasında, p ve r değerleri birer tam sayı ve dizi üzerindeki sıralanacak bölümün sınırlarını tutuyorlar. 

Yani örneğin P=5 , r= 18 için (bu sayıları rast gele yazdım) kodumuz 5. ve 18. dizi elemanları arasındaki sayıları sıralamaya çalışıyor. 

Video&#039;da da anlatmaya çalıştım, hızlı sıralama algoritması, sıralamak istediği sayı bloğunun en sonuncu elemanını pivot olarak alabilir. (farklı sayılarda seçilebilir ama kodda ve video&#039;da son elemanı kabul ettim) dolayısıyla buradaki p-r aralığı sıralanırken, partition isimli fonksiyonda görüldüğü üzere x değeri A[r] yani dizinin sıralanmasını istediğimiz alandaki son eleman oluyor. 

Ardından p ile r arasında dönen bir for döngüsü ile bütün sayılar, bu x değerinden yani pivot değerinden büyük ve küçük olarak tasnif ediliyor. 

Elbette bu sıralama işleminin sadece bir kısmı, ardından bu problem pivotun solundakiler ve pivot&#039;un sağındakiler olarak alt gruplarda çözülecek. Yani bir seviye alta iniyoruz ve buradaki sayıları da sıralıyoruz. Bunun için quicksort fonksiyonunda bulunan diğer iki quicksort fonksiyonu çağırmasına ihtiyaç var. Bu fonksiyonlardan birisi p ile q-1 arasını (buradaki q değeri, pivotun dizideki kaçıncı sayı olduğu)  diğer fonksiyon ise q+1 ile r arasını sıralıyor. Yani problem, p-r arasındaki sayılar iken iki alt probleme indiriliyor p-q ve q-r şeklinde iki grup sıralanıyor. 
q elemanı iki gruba da dahil değil (birisinde q-1&#039;e kadar diğerinde q+1&#039;den sonraki sayılar sıralamaya dahil edilmiş) bunun sebebi q değerinin pivot olması ve sıralama işleminde herhangi bir alt gruba girmemesi gerektiğidir. 

Sizin sorunuza dönecek olursak. Bahsettiğiniz if bloğuna p&lt;r iken girer. Ancak p=r veya p&gt;r durumlarında girmez. Bu durumlar da zaten sıralanacak eleman sayımız 0 veya sıfırdan küçük sayıda demektir ki bu da saçmadır. Yani en son 1 eleman sıralanabilir ve bu tek elemanın sıralanmış hali yine kendisidir. 1 elemandan az gruplar sıralanamaz ve bu if kontrolu bunu belirtir. 

Peki neden böyle bir if kontrolüne ihtiyaç duyoruz? Sebebi basit, her pivota göre sağ ve sol şeklinde problemi böldükten sonra elaman sayımız azalıyor. En nihayetinde tek eleman kalıyor ve bu tek elemanı sıralayıp işlemi bitiriyoruz. Şayet bu if kontrollerini koymazsak sıralama işlemi hiç bitmez ve 0 veya eksi değerdeki elemanları da sıralamaya çalışırız. 

Yani daha basit bir ifade ile, bu if kontollerinin amacı, tek elemandan az sayıdaki elemanları sıralamayarak, sıralama işleminin bu seviyede tamamlandığını belirtmektir. 

Bu koşul terk edildiğinde de (yani çalıştırılmadığında) fonksiyon işlemini bitirerek çıkar ve bu fonksiyonu çağırmış olan bir üstteki fonksiyon işe kaldığı yerden devam eder.</description>
		<content:encoded><![CDATA[<p>Sorunuzun cevabı, basitçe çalıştırmaz!</p>
<p>Bakın bahsettiğiniz kod parçasında, p ve r değerleri birer tam sayı ve dizi üzerindeki sıralanacak bölümün sınırlarını tutuyorlar. </p>
<p>Yani örneğin P=5 , r= 18 için (bu sayıları rast gele yazdım) kodumuz 5. ve 18. dizi elemanları arasındaki sayıları sıralamaya çalışıyor. </p>
<p>Video&#8217;da da anlatmaya çalıştım, hızlı sıralama algoritması, sıralamak istediği sayı bloğunun en sonuncu elemanını pivot olarak alabilir. (farklı sayılarda seçilebilir ama kodda ve video&#8217;da son elemanı kabul ettim) dolayısıyla buradaki p-r aralığı sıralanırken, partition isimli fonksiyonda görüldüğü üzere x değeri A[r] yani dizinin sıralanmasını istediğimiz alandaki son eleman oluyor. </p>
<p>Ardından p ile r arasında dönen bir for döngüsü ile bütün sayılar, bu x değerinden yani pivot değerinden büyük ve küçük olarak tasnif ediliyor. </p>
<p>Elbette bu sıralama işleminin sadece bir kısmı, ardından bu problem pivotun solundakiler ve pivot&#8217;un sağındakiler olarak alt gruplarda çözülecek. Yani bir seviye alta iniyoruz ve buradaki sayıları da sıralıyoruz. Bunun için quicksort fonksiyonunda bulunan diğer iki quicksort fonksiyonu çağırmasına ihtiyaç var. Bu fonksiyonlardan birisi p ile q-1 arasını (buradaki q değeri, pivotun dizideki kaçıncı sayı olduğu)  diğer fonksiyon ise q+1 ile r arasını sıralıyor. Yani problem, p-r arasındaki sayılar iken iki alt probleme indiriliyor p-q ve q-r şeklinde iki grup sıralanıyor.<br />
q elemanı iki gruba da dahil değil (birisinde q-1&#8242;e kadar diğerinde q+1&#8242;den sonraki sayılar sıralamaya dahil edilmiş) bunun sebebi q değerinin pivot olması ve sıralama işleminde herhangi bir alt gruba girmemesi gerektiğidir. </p>
<p>Sizin sorunuza dönecek olursak. Bahsettiğiniz if bloğuna p<r iken girer. Ancak p=r veya p>r durumlarında girmez. Bu durumlar da zaten sıralanacak eleman sayımız 0 veya sıfırdan küçük sayıda demektir ki bu da saçmadır. Yani en son 1 eleman sıralanabilir ve bu tek elemanın sıralanmış hali yine kendisidir. 1 elemandan az gruplar sıralanamaz ve bu if kontrolu bunu belirtir. </p>
<p>Peki neden böyle bir if kontrolüne ihtiyaç duyoruz? Sebebi basit, her pivota göre sağ ve sol şeklinde problemi böldükten sonra elaman sayımız azalıyor. En nihayetinde tek eleman kalıyor ve bu tek elemanı sıralayıp işlemi bitiriyoruz. Şayet bu if kontrollerini koymazsak sıralama işlemi hiç bitmez ve 0 veya eksi değerdeki elemanları da sıralamaya çalışırız. </p>
<p>Yani daha basit bir ifade ile, bu if kontollerinin amacı, tek elemandan az sayıdaki elemanları sıralamayarak, sıralama işleminin bu seviyede tamamlandığını belirtmektir. </p>
<p>Bu koşul terk edildiğinde de (yani çalıştırılmadığında) fonksiyon işlemini bitirerek çıkar ve bu fonksiyonu çağırmış olan bir üstteki fonksiyon işe kaldığı yerden devam eder.</r></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: esra</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-41355</link>
		<dc:creator>esra</dc:creator>
		<pubDate>Mon, 19 Jul 2010 04:59:44 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-41355</guid>
		<description>recursive algoritmalarda ogrenemedigim bir sorun var.yukarıda yazılan kodda quickSort(A,p, q-1);
isimli fonksiyon if(p&lt;r) kosulu ile calısmaktaysa,bu kosulu terkettiginde nasıl bu fonksiyonuda calıstır? quickSort(A,q+1, r); yardımcı olurmusunuz :(</description>
		<content:encoded><![CDATA[<p>recursive algoritmalarda ogrenemedigim bir sorun var.yukarıda yazılan kodda quickSort(A,p, q-1);<br />
isimli fonksiyon if(p&lt;r) kosulu ile calısmaktaysa,bu kosulu terkettiginde nasıl bu fonksiyonuda calıstır? quickSort(A,q+1, r); yardımcı olurmusunuz <img src='http://www.bilgisayarkavramlari.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Şadi Evren ŞEKER</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-31513</link>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		<pubDate>Wed, 12 May 2010 08:17:20 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-31513</guid>
		<description>evet haklsınız sayıları 5. adımda yazarken 4 ile 5&#039;in yeri değişmiş, yukarıdaki yazıda belirttiğiniz bu hatayı düzeltiyorum. 

Mustafa Bey&#039;e teşekkür ederim.</description>
		<content:encoded><![CDATA[<p>evet haklsınız sayıları 5. adımda yazarken 4 ile 5&#8242;in yeri değişmiş, yukarıdaki yazıda belirttiğiniz bu hatayı düzeltiyorum. </p>
<p>Mustafa Bey&#8217;e teşekkür ederim.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Şadi Evren ŞEKER</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-31512</link>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		<pubDate>Wed, 12 May 2010 08:16:43 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-31512</guid>
		<description>Bu kodda bulunna partition fonksiyonu verilen pivota göre diziyi ikiye bölmektedir. 
Bu durumu açıklayan bir resmi yukarıdaki yazıya ekliyorum. Sanırım daha açıklayıcı olacak. 

Acelya Hanıma uyarısından dolayı teşekkür ederim.</description>
		<content:encoded><![CDATA[<p>Bu kodda bulunna partition fonksiyonu verilen pivota göre diziyi ikiye bölmektedir.<br />
Bu durumu açıklayan bir resmi yukarıdaki yazıya ekliyorum. Sanırım daha açıklayıcı olacak. </p>
<p>Acelya Hanıma uyarısından dolayı teşekkür ederim.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mustafa SARIGÜL</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-31332</link>
		<dc:creator>Mustafa SARIGÜL</dc:creator>
		<pubDate>Tue, 11 May 2010 08:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-31332</guid>
		<description>5. adımdaki sıralama   1 (2) 4,5  değil   1 (2) 5,4 olacak
&lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;www.erbaaeml.k12.tr7&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>5. adımdaki sıralama   1 (2) 4,5  değil   1 (2) 5,4 olacak<br />
<a href="http://" rel="nofollow">http://www.erbaaeml.k12.tr7</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Acelya</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-31197</link>
		<dc:creator>Acelya</dc:creator>
		<pubDate>Mon, 10 May 2010 20:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-31197</guid>
		<description>Merhaba, öncelikle elinize sağlık, gerçekten çok güzel bir anlatım olmuş. Fakat bir noktada takıldım, buradaki p,q ve r değerleri tam olarak neye karşılık geliyor acaba?

Teşekkürler...:)</description>
		<content:encoded><![CDATA[<p>Merhaba, öncelikle elinize sağlık, gerçekten çok güzel bir anlatım olmuş. Fakat bir noktada takıldım, buradaki p,q ve r değerleri tam olarak neye karşılık geliyor acaba?</p>
<p>Teşekkürler&#8230;:)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-19009</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Thu, 01 Apr 2010 19:48:16 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-19009</guid>
		<description>thank you bilgileriniz için ama akış diyagramınıda çizseydiniz daha iyi olurdu.</description>
		<content:encoded><![CDATA[<p>thank you bilgileriniz için ama akış diyagramınıda çizseydiniz daha iyi olurdu.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bekir</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-9876</link>
		<dc:creator>Bekir</dc:creator>
		<pubDate>Mon, 04 Jan 2010 20:53:36 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-9876</guid>
		<description>Teşekkürler hocam konuyu burdaki anlatım sayesinde daha iyi anladım fakat bir de c dilinde bir kod örneği yayınlayabilirseniz adım adım yorumlayarak tam oturcak konu hocam.İyi çalışmalar(aynı sıkıntı bubblesort,mergesort tada yapabilirseniz çok iyi olur hocam binary search te anlattığınız gibi.)</description>
		<content:encoded><![CDATA[<p>Teşekkürler hocam konuyu burdaki anlatım sayesinde daha iyi anladım fakat bir de c dilinde bir kod örneği yayınlayabilirseniz adım adım yorumlayarak tam oturcak konu hocam.İyi çalışmalar(aynı sıkıntı bubblesort,mergesort tada yapabilirseniz çok iyi olur hocam binary search te anlattığınız gibi.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Şadi Evren ŞEKER</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-9512</link>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
		<pubDate>Sat, 26 Dec 2009 09:29:22 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-9512</guid>
		<description>hatayı düzelttim, ilginiz için teşekkürler</description>
		<content:encoded><![CDATA[<p>hatayı düzelttim, ilginiz için teşekkürler</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ERol</title>
		<link>http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/comment-page-1/#comment-9509</link>
		<dc:creator>ERol</dc:creator>
		<pubDate>Sat, 26 Dec 2009 05:23:55 +0000</pubDate>
		<guid isPermaLink="false">http://shedai.net/bilgisayar/?p=503#comment-9509</guid>
		<description>Merhaba,
yararli bir makale, emeginiz icin tesekkürler.
Fakat gördügüm bir yanlislik var : 

ilk verdiginiz deger : 

Sıralanmak istenen verimiz:

5,7,2,9,6,1,3,7

(buradaki 3 degeri 2. Asamada 4 olarak yaziliyor)</description>
		<content:encoded><![CDATA[<p>Merhaba,<br />
yararli bir makale, emeginiz icin tesekkürler.<br />
Fakat gördügüm bir yanlislik var : </p>
<p>ilk verdiginiz deger : </p>
<p>Sıralanmak istenen verimiz:</p>
<p>5,7,2,9,6,1,3,7</p>
<p>(buradaki 3 degeri 2. Asamada 4 olarak yaziliyor)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
