Sorting (Sıralama) Nedir ?

JooCyp

Yeni üye
1 Nis 2020
12
0
Merhabalar arkadaşlar,
Bildiğiniz üzere programlama yapı olarak algoritmalara dayanır.Burada bahsedeceğimiz Sorting yani Sıralama algoritmalarıda bilgisayar bilimlerinde verilmiş olan bir grup sayının küçükten büyüğe (veya tam tersi) sıralanması işlemini yapan algoritmalara verilen isimdir.

Kullanılacak sıralama algoritması seçilirken uygulanacak veri yapısı detaylı olarak ele alınmalıdır.
Sıralama algoritmalarının çalışma hızları, sıralanacak verinin büyüklüğü, kısmen sıralı olması, tersten sıralı olması veya tümüyle karışık yapıda olmasına bağlı olarak farklılık göstermektedir. Seçim yapılırken verinin bu anlamda değerlendirilmesi ve uygun algoritmanın tercihi en iyi sonuç için faydalı olacaktır.

Sıralama algoritmaları bilgisayarlarda tutulan verilerin düzenlenmesini ve insan kullanıcı tarafından daha rahat algılanmasını da sağlar.

Sıralama algoritmaları, tanımı çok yalın olmasına karşın çözümü çok karmaşık olan bir işi gerçekleştirdikleri için, üzerinde en fazla araştırma yapılan bilgisayar bilimi konularından biridir. Çoğu kişi sıralama sorununu çözülmüş bir sorun olarak görse de, yeni sıralama algoritmaları üzerinde araştırmalar sürmektedir.
Örneğin aşağıdaki düzensiz sayıları ele alalım:
Kod:
 5 9 2 3 7 11 -4 6
Bu sayıların sıralanmış hali : -4 2 3 5 6 7 11
olacaktır. Bu sıralama işlemini yapmanın çok farklı yolları vardır ancak bilgisayar mühendisliğinin temel olarak üzerine oturduğu iki performans kriteri buradaki sonuçları değerlendirmede önemli rol oynar.
Hafıza verimliliği (memory efficiency)
Zaman verimliliği (Time efficiency)
Temel olarak algoritma analizindeki iki önemli kriter bunlardır. Bir algoritmanın hızlı çalışması demek daha çok hafızaya ihtiyaç duyması demektir. Tersi durumda da bir algoritmanın daha az yere ihtiyaç duyması daha yavaş çalışması demektir. Ancak bir algoritma hem zaman hem de hafıza olarak verimliyse bu durumda diğer algoritmalardan başarılı sayılabilir.

Genellikle verinin hafızada saklanması sırasında veriyi tutan bir berlirleyici özelliğinin olması istenir. Veritabanı teorisinde birincil anahtar (primary key) ismi de verilen bu özellik kullanılarak hafızada bulunan veriye erişilebilir. Bu erişme sırasında şayet berlileyici alan sıralı ise erişimin logaritmik zamanda olması mümkündür. Şayet veri sıralı değilse erişim süresi doğrusal (linear) zamanda olmaktadır.

Genel olarak quicksort daha hızlı olmasına rağmen örnek veri tipinde insertion sort algoritmasının daha iyi bir performans sergilediği görülüyor.
Sıralama algoritmaların büyük bölümü aşağıda listelenmiştir.

  • Selection Sort
  • Bubble Sort
  • Insertion Sort
  • Merge Sort
  • QuickSort
  • Iterative Merge Sort
  • Iterative Quick Sort
  • Heap Sort
  • Couinting Sort
ve dahası ...

Kararlılık kriteri, bir algoritmanın bitiş kontrolüne dayanmaktadır. Örneğin sıralı bir dizi verilse bile sıralama işlemi yapmaya çalışır mı?
Anlatmaya çalıştığım sorting algoritmalarını inceleyebilirseniz sizin için daha iyi olacaktır.

Alıntı Yapılan Kaynak: https://medium.com/@halisak_/s%C4%B1...B1-dae2a88de6b
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.