diff --git a/Makefile b/Makefile index 74e33e1..d1ffce9 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,8 @@ SRCS = push_swap.c \ algo_bubble_sort.c \ minisort.c \ minisort_by_rank.c \ - minisort_2ways_bubble_sort.c + minisort_2ways_bubble_sort.c \ + special_sorts_3_5.c ODIR = ./builds diff --git a/builds/algo.o b/builds/algo.o index 5006dc4..e1e99f8 100644 Binary files a/builds/algo.o and b/builds/algo.o differ diff --git a/builds/algo_bubble_sort.o b/builds/algo_bubble_sort.o index 3cc32d1..1e8fb0d 100644 Binary files a/builds/algo_bubble_sort.o and b/builds/algo_bubble_sort.o differ diff --git a/builds/push.o b/builds/push.o index f7a04b2..4681227 100644 Binary files a/builds/push.o and b/builds/push.o differ diff --git a/builds/reverse_rotate.o b/builds/reverse_rotate.o index f62ccc1..2184f54 100644 Binary files a/builds/reverse_rotate.o and b/builds/reverse_rotate.o differ diff --git a/builds/rotate.o b/builds/rotate.o index 100f4d8..805b948 100644 Binary files a/builds/rotate.o and b/builds/rotate.o differ diff --git a/builds/special_sorts_3_5.o b/builds/special_sorts_3_5.o new file mode 100644 index 0000000..f214ecb Binary files /dev/null and b/builds/special_sorts_3_5.o differ diff --git a/builds/stop.o b/builds/stop.o index 37ff425..908a2e5 100644 Binary files a/builds/stop.o and b/builds/stop.o differ diff --git a/builds/swap.o b/builds/swap.o index 6a3aa1f..6b6af83 100644 Binary files a/builds/swap.o and b/builds/swap.o differ diff --git a/includes/push_swap.h b/includes/push_swap.h index 86343b1..dfdeb5a 100644 --- a/includes/push_swap.h +++ b/includes/push_swap.h @@ -48,7 +48,7 @@ void hugo_sort(t_stack **a, t_stack **b, t_list *lst); /* ** spcecial_sorts_3_5.c */ -void special_sort_3(t_stack **a, t_stack **b, t_list *solution); +void special_sort_3(t_stack **a, t_list *solution); void special_sort_5(t_stack **a, t_stack **b, t_list *solution); /* diff --git a/push_swap b/push_swap index 62bb3c0..b29a48e 100755 Binary files a/push_swap and b/push_swap differ diff --git a/srcs/algo.c b/srcs/algo.c index db8f1c8..c0c8d07 100644 --- a/srcs/algo.c +++ b/srcs/algo.c @@ -142,9 +142,11 @@ void recursif_sort(t_stack **a, t_stack **b, t_list *solution) void hugo_sort(t_stack **a, t_stack **b, t_list *solution) { if (sublist_size(*a) <= 3) - special_sort_3(a, b, solution); + special_sort_3(a, solution); + /* else if (sublist_size(*a) <= 5) special_sort_5(a, b, solution); + */ else recursif_sort(a, b, solution); } diff --git a/srcs/special_sorts_3_5.c b/srcs/special_sorts_3_5.c index 8267ac8..98357b5 100644 --- a/srcs/special_sorts_3_5.c +++ b/srcs/special_sorts_3_5.c @@ -1,10 +1,35 @@ #include "push_swap.h" -void special_sort_3(t_stack **a, t_stack **b, t_list *solution) +void special_sort_3(t_stack **a, t_list *solution) { + int order; + int size; + + size = sublist_size(*a); + order = order_is(*a, size); + if (order == 12) + sa(a, &solution); + if (order == 123) + { + ra(a, &solution); + sa(a, &solution); + } + if (order == 132) + rra(a, &solution); + if (order == 213) + ra(a, &solution); + if (order == 231) + { + rra(a, &solution); + sa(a, &solution); + } + if (order == 312) + sa(a, &solution); } +/* void special_sort_5(t_stack **a, t_stack **b, t_list *solution) { } +*/