Sıralama Algoritmaları(Sorting Algorithms)


Sıralama ve arama teknikleri günlük yaşantımızda elemanların sıralı tutulduğu bir çok programda kullanılmaktadır. Kabaca bu programlara kayıt defterleri, telefon rehberleri örnek verilebilir. Amaç gerekli veriyi sıralı halde hafızada tutmak ve istenildiğinde arama işleminin daha kısa sürmesini sağlamak olarak düşünülebilir.

Yaygın kullanılan sıralama algoritmalarına örnek vermek gerekirse;

  • Seçerek Sıralama(Selection Sort)
  • Hızlı Sıralama Algoritması(Quick Sort Algorithm)
  • Birleştirme Sıralaması(Merge Sort)
  • Kabarcık Sıralaması(Bubble Sort)
  • Taban Sıralaması(Radix Sort)
  • Ekleme Sıralaması (Insertion Sort)

Kabarcık Sıralaması(Bubble Sort)


Kabarcık Sıralaması,bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına"Kabarcık"sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir kabarcık gibi dizinin üstüne doğru ilerlemesidir.

Başlangıçta yeryer değiştirme sıralamasıolarak adlandırılan kabarcık sıralaması, dizi içindeki büyük elemanların algoritmanın her adımında dizinin sonuna doğru doğrusal olarak ilerlemesini sağlar. Bu ilerleme, seçmeli sıralama algoritmasındaki dizideki değeri küçük olan elemanların dizinin başında kümelenmesi yöntemine benzer şekilde gerçekleşir.

Kabarcık sıralamasının rastgele üretilmiş sayıları sıraladığını gösteren bir örnek;

Algoritmanın Adım Adım İşleyişi

İçeriği "5 1 4 2 8" olan bir dizi kabarcık sıralaması ile en küçükten en büyüğe doğru aşağıdaki biçimde sıralanır. Her adımda dizininkalınolarak işaretlenmiş elemenları karşılaştırılan elemanlardır.

Birinci Geçiş:
(514 2 8 )→(154 2 8 ) Burada algoritma ilk iki elemanı karşılaştırır ve yerlerini değiştirir.
( 1542 8 )→( 1452 8 )
( 1 4528 )→( 1 4258 )
( 1 4 258)→( 1 4 258) Burada elemanlar zaten sıralı olduğu için algoritma yerlerini değiştirmez.
İkinci Geçiş:
(142 5 8 )→(142 5 8 )
( 1425 8 )→( 1245 8 )
( 1 2458 )→( 1 2458 )
( 1 2 458)→( 1 2 458)
Artık dizi sıralıdır ancak algoritma işlemin bittiğini bilmemektedir. Algoritmanın dizinin sıralandığını anlaması için bütün dizinin üzerinden hiçbir değişiklik yapmadan tam bir geçiş yapması gerekir.
Üçüncü Geçiş:
(124 5 8 )→(124 5 8 )
( 1245 8 )→( 1245 8 )
( 12458 )→( 1 2458 )
( 1 2 458)→( 1 2 458)
Sonuç olarak dizi sıralanmıştır ve algoritma sonlanır.

Seçmeli Sıralama(Selection Sort)


Seçmeli veya seçerek sıralama basit olarak her adımda dizide ki en küçük sayının nerede olduğuna bakar ve bu sayı ile dizinin ilk sırasında ki değerle yer değiştirerek dizinin içinde ki en küçük sayıların sırasıyla dizilmesine yardımcı olur.

Yöntem

Algoritma aşağıdaki gibi çalışır:

  • Listedeki en küçük değerli öğeyi bul.
  • İlk konumdaki öğeyle bulunan en küçük değerli öğenin yerini değiştir.
  • Yukarıdaki adımları listenin ilk elemanından sonrası için (ikinci elemandan başlayarak) yinele.

Yerleştirme Sıralaması(Insertion Sort)


Inserion Sort bilgisayar bilimlerinde ki düzensiz dizi elemanlarının tek tek ele alınarak her birini dizinin sıralanmış kısmındaki uygun yerine yerleştirme esasına dayanır. Programlaması Merge ve Quick sıralamalarına göre daha yavaş olsada programlaması daha kolaydır. Günlük hayatımızda farkında olmadan kullandığımız sıralama tekniklerine yapısal olarak çok benzemektedir.

Örnek

Birleştirme Sıralaması(Merge Sort)

Girdi olarak aldığı diziyi en küçük hale gelene kadar ikili gruplara böler ve karşılaştırma yöntemi kullanarak diziyi sıralar.Diziyi ardışık olarak en küçük alt dizilerine(ikili) parçalayan daha sonrada parçalanmış dizi paçalarını kendi içerisinde tekrar sıralayıp birleştiren bir algoritmadır.

Algoritmanın çalışması kavramsal olarak şöyledir:

  1. Sıralı olmayan diziyi ortadan eşit olarak iki alt diziye ayırır.
  2. Bu ayırma işlemi, alt diziler en çok iki elemanlı olana kadar devam eder.
  3. Alt dizileri kendi içinde sıralar.
  4. Sıralı iki alt diziyi tek bir sıralı dizi olacak şekilde birleştirir.
Sorting Algorithms(Sıralama algoritmaları) ile ilgili videolar

Kaynaklar


Wikipedia, Bilgisayar Kavramları(Sadi Evren Şeker), Itü Bidb, Youtube.com, stackoverflow.com, geeksforgeeks.org

results matching ""

    No results matching ""