Sıralama Algoritmaları (Sorting Algorithms)
Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinde verilmiş olan bir grup sayının küçükten büyüğe (veya tersi) sıralanması işlemini yapan algoritmalara verilen isimdir. Örneğin aşağıdaki düzensiz sayıları ele alalım:
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.
Aşağıda bazı sıralama algoritmaları verilmiştir:
- Seçerek Sıralama (Selection Sort)
- Hızlı Sıralama Algoritması (Quick Sort Algorithm)
- Birleştirme Sıralaması (Merge Sort)
- Yığınlama Sıralaması (Heap Sort)
- Sayarak Sıralama (Counting Sort)
- Kabarcık Sıralaması (Baloncuk sıralaması, Bubble Sort)
- Taban Sıralaması (Radix Sort)
- Sokma Sıralaması ( Insertion Sort)
- Sallama Sıralaması (Shaker Sort)
- Kabuk Sıralması (Shell Sort)
Yukarıda verilen veya herhangi başka bir sıralama algoritması genelde küçükten büyüğe doğru (ascending) sıralama yapar. Ancak bunun tam tersine çevirmek (descending) genelde algoritma için oldukça basittir. Yapılması gereken çoğu zaman sadece kontrol işleminin yönünü değiştirmektir.
Ayrıca sıralama işleminin yapılması sırasında hafızanın kullanımına göre de sıralama algoritmaları :
- Harici Sıralama (External Sort)
- Dahili Sıralama (Internal Sort)
şeklinde iki grupta incelenebilir.
« Seçerek Sıralama (Selection Sort) | Kuyruk Özyinelemesi (Tail Recursion, Birikimsel Tarz, Accumulation Style) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Sıralama Algoritmaları (Sorting Algorithms)' isimli yazı 09 Aug 2008 tarihinde, saat: 22:36 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 2639 defa okunmuştur.
Benzer yazıları Bilgisayar Standartları, Donanım ( Hardware ), Doğal Dil İşleme (NLP), Network(Ağ), Programlama Dilleri, Veri Güvenliği(Cryptography), algoritma analizi (teory of algorithms), bilgisayar felsefesi, işletim sistemleri, veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Özyineli Diller (Recursive Languages)
- Özyineli Geçiş Ağları (Reursive Transition Networks)
- Gellish (Kontrollü Doğal Dil)
- Karar Problemi (Decision Problem)
- Masfuf (Matris , Matrix)
- Turing Makinesi (Turing Machine)
- Özyineli Sayılabilir Diller (Recursively Enumerable Languages)
- Chomsky Hiyerarşisi ( Chomsky Hierarchy )
- Anlamsal Ağlar (Semantic Network)
- Mana Ağları (Sematic Webs, Anlamsal Ağ)
Yapılan Son Yorumlar
- vildan: teşekkürler..
- Şadi Evren ŞEKER: Elbette; farklı iki örnek daha...
- rasim: daha baska ornekler verebılırmısınız
- Zeynep Kaya: İyi günler.Benim size bi sorum daha...
- Zeynep Kaya: Cok tesekkür ederim yardımınız icin..
Yakın Yazılar
Sıralama Algoritmaları (Sorting Algorithms)
Buket Sıralaması (Bucket Sort)
Sallayıcı Sıralaması (Shaker Sort)
Seçerek Sıralama (Selection Sort)
Kesintili Zamanlama (Preemptive Scheduling)
Kesmeyen Zamanlama (non-preemptive Scheduling)
Sayarak Sıralama (Counting Sort)
Harici Sıralama (External Sort)
Hızlı Sıralama Algoritması (Quick Sort Algorithm)
Yığınlama Sıralaması (Heap Sort)
Kabarcık Sıralaması (Baloncuk sıralaması, Bubble Sort)
Birleştirme Sıralaması (Merge Sort)
Sokma Sıralaması (Ekleme Sıralaması, Insertion Sorting)
Dolaylı sıralama (Indirect Sort, Gayrimüstakim sıralama)
İşlemci Zamanlama (CPU Scheduling)
Genetik Algoritmalar (Genetic Algorithms)
Bağlantılar
yeni almaya başladığımız veri tabanı dersimiz için gerekli olan araştırmada, sıralama algoritmaları ile ilgili bilgi edinmemde anlatımınızdan yararlandım teşekkür ederim..