Sıralama Algoritmaları

Merhaba Gelişen Kariyerim okurları. Bu yazımda sizleri Sıralama Algoritmaları hakkında bilgilendirmeyi amaçlıyorum. Bilgisayar bilimlerinde en sık kullanılan algoritmalardan olan Sıralama Algoritmalarının kullanım amacını, algoritmanın çeşitlerini ve bu çeşitlerin ne şekilde çalıştığını sizlerle birlikte inceleyeceğiz.

İçindekiler

Sıralama Algoritmaları Nedir?

Sıralama Algoritmaları anlamına gelen Sorting Algorithms, adından da belli olduğu gibi elimizde bulunan listedeki sırasız verileri en verimli şekilde büyükten küçüğe ya da küçükten büyüğe doğru sıralamak için kullanılan algoritmalardır. Bu amaçla kullanılan birçok Sıralama Algoritmaları vardır. Bu algoritmalar genellikle çalışma hızı, yazım kolaylığı ve kapladığı yere bakılarak kullanılır, sonuç olarak en verimlisi seçilir ve seçilen algoritma kullanılır. Şimdi sizlerle birlikte bu algoritmalar arasından en sık kullanılanları görelim.

Sıralama Algoritmaları

  • Bubble Sort (Kabarcık Sıralaması)
  • Selection Sort (Seçmeli Sıralama)
  • Insertion Sort (Eklemeli Sıralama)
  • Merge Sort (Birleştirmeli Sıralama)

Bubble Sort (Kabarcık Sıralaması)

Kabarcık Sıralama ya da başka bir deyişle Elemeli Sıralama olarak da bilenen Bubble Sort, kolay çalışma mantığına sahip olan bir sıralama algoritmasıdır. Adının Kabarcık Sıralaması olmasının nedeni, büyük olan sayının suyun altındaki kabarcıklar gibi listenin üstüne doğru yükselmesidir. Algoritma yavaş çalıştığı için düşük performanslıdır.

Listede bulunan ilk iki elemanı birbirleriyle karşılaştırırız. Birinci eleman ikinci elemandan büyük ise iki eleman birbirleriyle yer değiştirir. Herhangi bir değişiklik yapılmadığı sürece sıralanma tamamlanana kadar ikili karşılaştırma listenin başına dönülerek tekrarlanır. Böylece algoritma listedeki veriler küçükten büyüğe doğru sıralar.

(6 2 8 4 10) = > Listenin ilk hali.

(6 2 8 4 10) = > (2 6 8 4 10) : İlk iki verinin karşılaştırılması sonucu ikinci veri daha küçük olduğu için yer değiştiriyor.

(2 6 8 4 10) = > (2 6 4 8 10) : 8 ve 4 karşılaştırılıyor, 4 8 den küçük olduğu için yer değiştiriyorlar.

(2 6 4 8 10) = > (2 6 4 8 10) . Sona gelmiş olmamıza rağmen listemiz tamamen sıralanmadı. Bu yüzden tekrar başa dönüyoruz.

(2 6 4 8 10) = > (2 4 6 8 10) . 6 ve 4 karşılaştırılıyor ve 4 6 dan küçük olduğu için yer değiştiriyorlar.

(2 4 6 8 10) = > (2 4 6 8 10). Sıralamanın son hali.

Selection Sort (Seçmeli Sıralama)

Selection Sort (Seçmeli Sıralama) kodlaması kolay bir algoritma türüdür. Verim açısından Bubble Sort’a göre daha verimli bir yöntem olsa da diğer yöntemlerle karşılaştırıldığında yavaş çalışan bir sıralama algoritması çeşididir.

Listede yer alan ilk eleman kendinden sonra gelen tüm elemanlarla karşılaştırılarak listede yer alan en küçük elemanla yer değiştirir. Ardından ikinci eleman listedeki tüm elemanlarla karşılaştırılarak en küçük sayı ile yer değiştirir. İşlem aynı şekilde listedeki son elemana kadar devam eder ve sıralama tamamlanana kadar aynı işlem devam eder.

(11 6 8 25 14 13) = > . Listenin ilk hali.

(11 6 8 25 14 13) = > . İlk sıradaki 11 kendinden sonra gelen sayılarla karşılaştırılarak en küçük sayıyla (6) yer değiştirir.

(6 11 8 25 14 13) = > . İkinci sıradaki 11 kendinden sonra gelen sayılarla karşılaştırılarak en küçük sayıyla (8) yer değiştirir.

(6 8 11 25 14 13) = > . Üçüncü sıradaki 11 kendinden sonraki sayılardan daha küçük olduğu için olduğu yerde kalır.

(6 8 11 25 14 13) = > . Dördüncü sıradaki 25 kendinden sonra gelen sayılarla karşılaştırılarak en küçük sayıyla (13) yer değiştirir.

(6 8 11 13 14 25 ) = > Sıralamanın son hali.

Insertion Sort (Eklemeli Sıralama)

Eklemeli Sıralama anlamına gelen Insertion Sort uygulaması kolay, küçük veri kümelerinde kullanıldığında da verim alınan bir sıralama algoritmasıdır. Ama büyük veri kümelerinde Merge Sort gibi algoritmalarla karşılaştırıldığında daha verimsiz çalışan bir sıralama algoritmasıdır. Ayrıca günlük yaşantıda da sık kullanılan bir sıralama yöntemidir.

Eklemeli sıralamada ki işlemi kısaca şöyle açıklayabiliriz. Bu yöntem listedeki elemanları sırayla okur. Buna göre kendinden önceki elemanlarla karşılaştırılıp kendine en uygun olan yere yerleşir. Mesela bu algoritmanın çalışma şeklini günlük hayatımızda sırayla çektiğimiz iskambil kartlarını sıralama şeklimize benzetebiliriz.

(21 16 8 33 56 44) => . Listemizin ilk hali.

(16 21 8 33 56 44) = > . 16 21’den küçük olduğu için ilk sıraya geçer.

(8 16 21 33 56 44) = > . 8 16’dan daha küçük olduğu için ilk sıraya geçecek.

(8 16 21 33 44 56) = > . 33 önündeki sayılardan küçük olmadığı için sabit kalır. Aynı şekilde 56 da aynı yerde kalacaktır. Ardından 44 56’dan küçük olduğu için onun önüne geçecektir.

(8 16 21 33 44 56) => . Sıralamanın son hali.

Merge Sort (Birleştirmeli Sıralama)

Merge Sort (Birleştirmeli Sıralama) yöntemi yukarıda bahsettiğimiz diğer yöntemlerden çok daha hızlı çalışan verimli bir sıralama algoritması çeşididir. Bu yöntemde yapılan işlem şu şekildedir:

Listenin ilk hali eşit olarak ortadan ikiye ayrılarak iki alt liste oluşturulur. Bu işlem alt listeler en fazla iki elemanlı olana kadar devam ettirilir. Ayrılan her alt liste kendi aralarında sıralanır. Sonuç olarak sıralanmış alt listeler sırayla birleştirilerek tek bir sıralı liste oluşturulur.

(24 18 9 46 73 34 51 12) . Listenin ilk hali

(24 18 9 46 ) | (73 34 51 12) . Listeye iki eşit alt listeye ayırdık.

(24 18) | (9 46) || (73 34) | (51 12) . Benzer şekilde alt listeleri de en fazla iki elemanlı olacak şekilde alt listelere ayırdık.

(18 24) | (9 46) || (34 73) | 12 51) . Alt listeler kendi aralarında sıralandı.

(9 18 24 46) | (12 34 51 73) . Sıralanan alt listeler birleştirildi.

(9 12 18 24 34 46 51 73) . Listelerin sıralanıp birleştirilmiş son hali.

Umarım tüm okurlarımızın sorularına cevap bulabilecekleri nitelikte bir yazı olmuştur. Bir sonraki yazımda görüşmek üzere. Sağlıklı günler dilerim.

Diğer yazılarımızı buradan okuyabilir ve paylaşabilirsiniz.

Android Geliştirme İçin En İyi 20 Yazılım Programı

SQL Komutları ve Kullanımı

tarafından yazıldı Kübra Güveli

Sitcom Önerileri

Veri Bilimi için En İyi 3 Programlama Dili