Push Swap, argüman olarak integer değer aralığında sayılar alıp bunları mümkün olan en az adımda sıralamayı amaçlayan bir projedir. Bu sıralama işlemi için argüman olarak alınan sayıları bir stack(Stack A) olarak tutar ve bu stackten ayrı olarak yardımcı bir stack(Stack B) kullanır. Stack’lerde bulunan sayıların sırasını değiştirmek için yalnızca, pek çok programlama dilinde mevcut olan bir dizi operasyonel hamleden faydalanır. Bunlar; SA(A’daki ilk iki elemanın yerini değiştirir), SB(A’daki ilk iki elemanın yerini değiştirir), SS(SA ve SB aynı anda uygular), PA(A’dan B’ye ilk elemanı pushlar), PB(B’den A’ya ilk elemanı pushlar), RA(A’daki bütün elemanları bir yukarı kaydırır), RB(B’deki bütün elemanları bir yukarı kaydırır), RR(RA ve RB aynı anda uygular), RRA(A’daki elemanları bir aşağı kaydırır), RRB(B’deki elemanları bir aşağı kaydırır), RRR(RRA ve RRB aynı anda uygular). Bu hamlelerin uygun olanlarını sayılar sıralı, stack A da bulunacak şekilde uygular ve hamleleri standart output’a yazar.
ucylmz / push_swap Goto Github PK
View Code? Open in Web Editor NEWPush_swap is a program that sorts an array by utilizing various array manipulation functions commonly used in programming languages such as pa(), pb(), sa(), sb(), ra(), rb(), rra(), rrb(), and rrr(). It takes an stack_a as an argument and outputs the instructions required to sort the array to the standart output.