ilnrzakirov / push_swap

πŸ“šπŸ“š πŸ–₯ Stack sorting algorithm. 100 numbers for 730 operations, 500 for 5200 operations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

push_swap

94 points

For detailed information, refer to the subject of this project


β€’ The game is composed of 2 stacks named a and b.

β€’ To start with:

β—¦ the stack a contains a random amount of negative and/or positive numbers which cannot be duplicated.

β—¦ b is empty

β€’ The goal is to sort in ascending order numbers into stack a.

β€’ To do this you have the following operations at your disposal:



sa : swap a - swap the first 2 elements at the top of stack a. Do nothing if there is only one or no elements).

sb : swap b - swap the first 2 elements at the top of stack b. Do nothing if there is only one or no elements).

ss : sa and sb at the same time.

pa : push a - take the first element at the top of b and put it at the top of a. Do nothing if b is empty.

pb : push b - take the first element at the top of a and put it at the top of b. Do nothing if a is empty.

ra : rotate a - shift up all elements of stack a by 1. The first element becomes the last one.

rb : rotate b - shift up all elements of stack b by 1. The first element becomes the last one.

rr : ra and rb at the same time.

rra : reverse rotate a - shift down all elements of stack a by 1. The last element becomes the first one.

rrb : reverse rotate b - shift down all elements of stack b by 1. The last element becomes the first one.

rrr : rra and rrb at the same time.

About

πŸ“šπŸ“š πŸ–₯ Stack sorting algorithm. 100 numbers for 730 operations, 500 for 5200 operations


Languages

Language:C 94.6%Language:Makefile 5.4%