Veri Yapıları & Algoritmalar

Sıralama algoritmalarının ilk kısmını içeren yazımda basit sıralama algoritmaları olarak Seçmeli (Selection sort) ve Eklemeli (Insertion sort) sıralama algoritmalarından bahsetmiştim. Bu yazıda gelişmiş sıralama algoritmaları olarak Birleştirmeli (Mergesort) ve Hızlı (Quicksort) sıralama algoitmalarını inceleyeceğim. Bu algoritmaları gerçeklerken hem birleştirme (merge) ve bölümleme (partition) gibi işlemler, hem de özyineleme (recursion) yaklaşımını kullanmış olacağız.

Okumaya devam edin...

Merhaba bu yazımda sıralama algoritmalarını inceleyeceğim. Sıralama algoritmaları çoğumuza üniversite ders sıralarında kalmış görünse de aslında gündelik hayatımızda kullandığımız hemen hemen her teknik aracın işleyişinde rol alıyor. Bundan otuz kırk yıl önce bilgisayar teknolojisinin sunabileceği işlemci, bellek ve sabit disk gibi kaynaklar oldukça sınırlıydı, bu yüzden yapılacak işler için etkili yöntemler kullanmak gerekiyordu. Günümüzde bu kaynaklar kolay erişilebilir hale geldi ama yine de etkili yöntemler kullanmamız gerekiyor, çünkü hala çok daha etkili kullanmak zorunda olduğumuz bir kaynak olan zaman katı bir kısıt olarak karşımızda duruyor.

Çok basit şekilde yaklaşalım, verimliliğe ve karmaşıklığa dikkat etmediğimiz çok büyük sayıda girdiye sahip kötü bir program geliştirdiğimizi düşünelim (lütfen bu sadece kötü bir varsayım olarak kalsın) ve bu programı şu an dünya üzerinde bulunan en gelişmiş bilgisayarda çalıştırma fırsatını bulabiliriz ama bu programın sonuç vermesi için gereken birkaç yılı bulamayız. O yüzden tercihimizi daha az zaman karmaşıklığı içeren algoritmalardan yana kullanmak mantıklı bir yaklaşım olacaktır.

Okumaya devam edin...