Sıralama Algoritmaları

Verileri sıralamak için bir çok yöntem – sıralama algoritması bulunmaktadır. Her bir sıralama algoritması kullandığı yöntem ve verilerin yapısı nedeniyle farklı zamanlamalarda sonuçlanacaktır.

Sıralanacak verinin büyüklüğü, içerisindeki bazı kayıtların zaten sıralı olması, verinin tersten sıralanmış şekilde olması, verinin tümüyle rastgele oluşması veya veri içerisinde tekrar eden veri gruplardan oluşması gibi nitelikler, üzerinde çalışacak sıralama algoritması için önemli olacaktır.

Verinin nasıl bir yapıda olduğu ve ihtiyaca uygun şekilde analiz ederek doğru algoritmayı seçmek time complexity (zaman karmaşıklığı) azaltacak verimli şekilde işlem yapmayı sağlayacaktır.

Sık kullanılan önemli sıralama algoritmaları şu şekildedir.

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Heap Sort
  • Merge Sort
  • Quicksort – in-place and non-in-place implementations
  • Shellsort

Sıralama algoritmalarının çeşitli veri türlerinde nasıl çalışıp verileri sıralı hale getirdiğini çok güzel şekilde animasyonla anlatan ve algoritmalar hakkında bilgi sağlayan site linkini bırakıyorum buradan incelemenizi öneririm. Böylece kafamızda daha iyi canlanacak ve tamamlanma hepsinin çalıştıktan sonra tamamlanma sürelerini, davranışlarını görüyor olacağız.

https://www.toptal.com/developers/sorting-algorithms

Bu algoritmaları detaylı şekilde anlatılan bir çok kaynak mevcut bunları inceleyebilirsiniz burada detaylara girmeyeceğiz.

Burada vurgulamak istediğim tüm mühendislik ve yazılım geliştirme süreçlerinde olduğu gibi analiz, durum, ihtiyaç değerlendirmesi çok önemlidir.
Genelde sıralamada olduğu gibi diyince aklımıza ilk gelen kullanımı basit yöntemleri seçmekteyiz. Ancak verinin durumu, kullanım ve ihtiyaçlara göre değerlendirme ve karşılaştırma yaptıktan sonra yöntemi uygulama daha doğru bir yaklaşım olacaktır.
Daha basit operasyonlarda ihtiyacın olmadığı yerde karmaşıklığı yüksek yöntemler uygulamak hem verimliliği hem complexity arttıracağı da unutulmamalıdır.

Javascript veri yapıları ve algoritmalar üzerine hazırlanmış repository inceleyebilirsiniz.
https://github.com/trekhleb/javascript-algorithms

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*
Website