int ft_recus(t_push **stacka, t_push **stackb, int i, t_info *info) { if (ft_is_sort(*stacka) == 1 && *stackb == NULL) return (1); if (i == 0) return (0); if (ft_recus_2(stacka, stackb, i, info) == 1) return (1); if (ft_recus_3(stacka, stackb, i, info) == 1) return (1); if (ft_recus_4(stacka, stackb, i, info) == 1) return (1); if (ft_recus_5(stacka, stackb, i, info) == 1) return (1); return (0); }
static int ft_sort_core(int *min_pos, int *ret, t_env *e) { if ((*ret = ft_is_sort(e->a, e->len_a)) == 1) { while (e->len_b > 0) ft_disp_push_a(e); return (-1); } else if (*ret == 2) { ft_disp_rev_rot_a(e); ft_disp_rev_rot_a(e); ft_disp_swap_a(e); ft_disp_rot_a(e); ft_disp_rot_a(e); return (0); } ft_sort_core_2(min_pos, e); return (1); }
static void ft_sort_core_2(int *min_pos, t_env *e) { int i; i = 0; if (*min_pos == 1) { ft_disp_swap_a(e); i++; } else if (*min_pos <= (int)e->len_a / 2) while (i++ < *min_pos) ft_disp_rot_a(e); else while (i < (int)(e->len_a - *min_pos)) { ft_disp_rev_rot_a(e); i++; } if (ft_is_sort(e->a, e->len_a) != 1) ft_disp_push_b(e); }