diff --git a/builds/algo.o b/builds/algo.o index 97c2f0d..99b8e65 100644 Binary files a/builds/algo.o and b/builds/algo.o differ diff --git a/push_swap b/push_swap index f66425a..98af2a0 100755 Binary files a/push_swap and b/push_swap differ diff --git a/srcs/algo.c b/srcs/algo.c index af6bd60..7a84600 100644 --- a/srcs/algo.c +++ b/srcs/algo.c @@ -280,6 +280,264 @@ int order_is(t_stack *list, int nbr) return (order); } +void sort_5(t_stack **a, t_list *solution) +{ + int order; + +48 67 83 54 65 +1 4 5 2 3 + +21 34 20 17 28 +3 5 2 1 4 + +11 13 12 7 10 +3 4 5 1 2 + +6 -3 -12 2 5 +5 2 1 3 4 + + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + + order = order_is(*a, 5); + if (order == 12345) + { + s + r + s + r + s + r + s + rr + rr + rr + s + r + s + r + s + rr + rr + s + r + s + rr + s + } + /* + else if (order == 12354) + else if (order == 12435) + else if (order == 12453) + else if (order == 12534) + else if (order == 12543) + + else if (order == 13245) + else if (order == 13254) + else if (order == 13425) + else if (order == 13452) + else if (order == 13524) + else if (order == 13542) + + else if (order == 14235) + */ + else if (order == 14253) + { + |14253 + r 3|1425 + s 3|1452 + r 23|145 + s 23|154 + r 423|15 + s 423|51 + rr 23|514 + s 23|541 + rr 3|5412 + s 3|5421 + rr |54213 + s |54231 + r 1|5423 + s 1|5432 + rr |54321 + } + /* + else if (order == 14325) + else if (order == 14352) + else if (order == 14523) + else if (order == 14532) + + else if (order == 15234) + else if (order == 15243) + else if (order == 15324) + else if (order == 15342) + else if (order == 15423) + else if (order == 15432) + + + else if (order == 21345) + else if (order == 21354) + else if (order == 21435) + else if (order == 21453) + else if (order == 21534) + else if (order == 21543) + + else if (order == 23145) + else if (order == 23154) + else if (order == 23415) + else if (order == 23451) + else if (order == 23514) + else if (order == 23541) + + else if (order == 24135) + else if (order == 24153) + else if (order == 24315) + else if (order == 24351) + else if (order == 24513) + else if (order == 24531) + + else if (order == 25134) + else if (order == 25143) + else if (order == 25314) + else if (order == 25341) + else if (order == 25413) + else if (order == 25431) + + + else if (order == 31245) + else if (order == 31254) + else if (order == 31425) + else if (order == 31452) + else if (order == 31524) + else if (order == 31542) + + else if (order == 32145) + else if (order == 32154) + else if (order == 32415) + else if (order == 32451) + else if (order == 32514) + else if (order == 32541) + + else if (order == 34125) + else if (order == 34152) + else if (order == 34215) + else if (order == 34251) + */ + else if (order == 34512) + { + |34512 + r 2|3451 + r 12|345 + s 12|354 + r 412|35 + s 412|53 + rr 12|534 + s 12|543 + rr 2|5431 + rr |54312 + s |54321 + } + /* + else if (order == 34521) + + else if (order == 35124) + else if (order == 35142) + */ + else if (order == 35214) + { + |35214 + s |35241 + r 1|3524 + s 1|3542 + r 21|354 + r 421|35 + s 421|53 + rr 21|534 + s 21|543 + rr 1|5432 + rr |54321 + } + /* + else if (order == 35241) + else if (order == 35412) + else if (order == 35421) + + + else if (order == 41235) + else if (order == 41253) + else if (order == 41325) + else if (order == 41352) + else if (order == 41523) + else if (order == 41532) + + else if (order == 42135) + else if (order == 42153) + else if (order == 42315) + else if (order == 42351) + else if (order == 42513) + else if (order == 42531) + + else if (order == 43125) + else if (order == 43152) + else if (order == 43215) + else if (order == 43251) + else if (order == 43512) + else if (order == 43521) + + else if (order == 45123) + else if (order == 45132) + else if (order == 45213) + else if (order == 45231) + else if (order == 45312) + else if (order == 45321) + + + else if (order == 51234) + else if (order == 51243) + else if (order == 51324) + else if (order == 51342) + else if (order == 51423) + else if (order == 51432) + */ + + else if (order == 52134) + { + |52134 + s |52143 + r 3|5214 + s 3|5241 + r 13|524 + s 13|542 + rr 3|5421 + rr |54213 + s |54231 + r 1|5423 + s 1|5432 + rr |54321 + } + /* + else if (order == 52143) + else if (order == 52314) + else if (order == 52341) + else if (order == 52413) + else if (order == 52431) + + else if (order == 53124) + else if (order == 53142) + else if (order == 53214) + else if (order == 53241) + else if (order == 53412) + else if (order == 53421) + + else if (order == 54123) + else if (order == 54132) + else if (order == 54213) + else if (order == 54231) + else if (order == 54312) + else if (order == 54321) + */ +} + void sort_4(t_stack **a, t_list *solution) { int order; @@ -571,9 +829,9 @@ void mini_sort(t_stack **a, t_list *solution) sort_3(a, solution); else if(list_size == 4) sort_4(a, solution); - /* else if(list_size == 5) sort_5(a, solution); + /* else if(list_size == 6) sort_6(a, solution); else @@ -585,12 +843,12 @@ void mini_sort(t_stack **a, t_list *solution) void hugo_sort(t_stack **a, t_stack **b, t_list *solution) { - if (sublist_size(*a) > 3) + if (sublist_size(*a) > 5) divide_a(a, b, solution); else { mini_sort(a, solution); - if (sublist_size(*b) > 3) + if (sublist_size(*b) > 5) divide_b(a, b, solution); else if (sublist_size(*b) > 0) send_sublist_to_a(a, b, solution);