Push swap projesi etkili bir algoritma projesidir: veriler sıralanmalıdır. Elinizde bir integer array, 2 stack ve bu stackleri manipüle etmek için bir instruction setiniz var.
- Repo'yu clone'layın:
git clone https://github.com/fbkeskin/42-push_swap.git
- Makefile'ı kullanarak source kodu derleyin:
make
1 executable file oluşmaktadır:
push_swap
.
- Sıralamak istediğiniz sayıları argüman olarak girin ve
push_swap
binary dosyasını execute ederek programı başlatın:
$>./push_swap 2 1 3 6 5 8
ra
pb
pb
pb
ra
ra
pa
pa
pa
pb
ra
pb
pb
ra
pb
pa
pa
pa
pa
pb
ra
pb
ra
pb
pb
pa
pa
pa
pa
$>./push_swap 7 essek 4 1
Error
Program, sayıları sıralar ve stack manipülasyonu için kullanılan instruction'lar ekrana basılır. Ekranda gördüğünüz instruction'lar argüman listenize uygulandığında küçükten büyüğe doğru sıralanmış bir array elde edersiniz. Argüman olarak integer girilmemesi durumunda error handling ile ekrana hata mesajı basılır.
- Farklı argüman listesiyle çalışmak için 3. adımı tekrarlayın.
Instructions | Descriptions |
---|---|
sa | A stack'inin en üstteki iki elemanı birbirileri ile yer değiştirir. |
sb | B stack'inin en üstteki iki elemanı birbirileri ile yer değiştirir. |
ss | sa ve sb instructions aynı anda çalıştırılır. |
pa | B stack'inin en üstündeki elemanı A stack'inin en üstüne koyulur. |
pb | A stack'inin en üstündeki elemanı B stack'inin en üstüne koyulur. |
ra | A stack'inin bütün elemanlarını bir yukarı kaydırılır. |
rb | B stack'inin bütün elemanlarını bir yukarı kaydırılır. |
rr | ra ve rb instructions aynı anda çalıştırılır. |
rra | A stack'inin bütün elemanları bir aşağı kaydırılır. |
rrb | B stack'inin bütün elemanları bir aşağı kaydırılır. |
rrr | rra ve rrb instructions aynı anda çalıştırılır. |