Bu proje, bir dizi sayıyı en az adımda sıralamak için en verimli algoritmayı geliştirmeyi amaçlar. Yığın (stack) veri yapıları kullanarak sıralama işlemi optimize edilir ve veriler iki yığın arasında taşınır. Çeşitli sıralama algoritmaları (Bubble Sort, Quick Sort, vb.) değerlendirilir ve en uygun algoritma seçilir. Proje, algoritma tasarımı ve veri yapılarının etkin kullanımında bilgi sağlar ve performans avantajları sunar. 🔍📊
Push_swap projesinin temel amacı, belirli bir sayı dizisini en az adımda sıralamak için en etkili algoritmayı geliştirmektir. Bu hedefe ulaşmak için projede yığın (stack) veri yapıları ve çeşitli sıralama algoritmaları kullanılır.
Yığın veri yapıları, sıralama sürecinde verilerin düzenlenmesi ve yönetilmesinde kritik bir rol oynar. Bu veri yapıları, "son giren, ilk çıkan" (LIFO) prensibine göre çalışır ve sıralama algoritmalarının etkinliğini artırmak için kullanılır. İki ayrı yığın kullanarak, veriler bir yığından diğerine taşınır, böylece sıralama işlemi daha verimli ve düzenli hale gelir.
Projede, sıralama algoritmalarının performansı detaylı bir şekilde analiz edilir. Basit algoritmalardan (Bubble Sort, Insertion Sort) daha karmaşık algoritmalara (Quick Sort, Merge Sort) kadar çeşitli yöntemler uygulanır ve her birinin avantajları ile dezavantajları değerlendirilir. Bu analiz, hangi algoritmanın en verimli olduğunu belirlemek için yapılır ve sonuçta en iyi performansı sağlayan algoritma seçilir.
Push_swap, algoritma tasarımı, veri yapıları ve performans optimizasyonu konularında derinlemesine bilgi edinmeyi sağlar. Yığın veri yapılarının etkin kullanımı ve sıralama algoritmalarının performansını artırmak, yazılım geliştirme süreçlerinde önemli beceriler kazandırır. Proje, sıralama işlemlerinde verimlilik ve performans açısından gerçek dünya uygulamalarında önemli avantajlar sunar.
- Verimli Sıralama: Verilen sayı dizisini en az adımda sıralayabilen bir algoritma geliştirmek.
- Yığın Kullanımı: İki ayrı yığın kullanarak sıralama algoritmalarını uygulamak.
- Algoritma Optimizasyonu: Sıralama işlemi için en uygun algoritmayı bulmak ve uygulamak.
Push_swap projesinde kullanılan bazı temel komutlar şunlardır:
sa
: İlk iki öğeyia
yığında takas eder. 🔄sb
: İlk iki öğeyib
yığında takas eder. 🔄pa
:b
yığındana
yığına bir öğe taşır.↔️ pb
:a
yığındanb
yığına bir öğe taşır.↔️ ra
:a
yığındaki tüm öğeleri bir pozisyon döndürür. 🔁rb
:b
yığındaki tüm öğeleri bir pozisyon döndürür. 🔁rra
:a
yığındaki tüm öğeleri bir pozisyon geri döndürür. 🔙rrb
:b
yığındaki tüm öğeleri bir pozisyon geri döndürür. 🔙rr
: Hema
hem deb
yığınlarını bir pozisyon döndürür. 🔁🔁rrr
: Hema
hem deb
yığınlarını bir pozisyon geri döndürür. 🔙🔙
Bu komutlar, sıralama algoritması içinde yığınları yönetmek ve verileri taşımak için kullanılır.
Push_swap projesini çalıştırmak için aşağıdaki gereksinimlerin sağlanması gerekir:
- Unix tabanlı bir işletim sistemi (Linux, macOS) 🖥️
- GCC derleyici 🛠️
Projeyi yerel bir makinede çalıştırmak için aşağıdaki adımları izleyin:
- Repoyu yerel makinenize klonlayın:
git clone https://github.com/username/push_swap.git
- Proje dizinine gidin:
cd push_swap
- Projeyi derlemek için Makefile'ı çalıştırın:
make
Sıralama işlemi için aşağıdaki adımları izleyin:
- Programı çalıştırın ve sıralamak istediğiniz sayıları argüman olarak girin:
./push_swap [sayı1] [sayı2] [sayı3] ...
Bu README dosyası Derya ACAR tarafından hazırlanmıştır.