void push_swap(t_shell *h, int x, int len, int i) { int *big; len = l_len(h->sa) / 2; big = get_biggest(h->sa, len, x); h->min = x == INT_MIN ? big[0] : h->min; i = len; while (i) { if (arr(h->sa->nb, big, len) && arr(h->sa->n->nb, big, len) && h->sa->n->nb > h->sa->nb) ft_sa(h, 1); if (arr(h->sa->nb, big, len)) { ft_pb(h, 1); i--; } else ft_ra(h, 1); sort_b_list(h, big, len); } rempile(h); if (x == INT_MIN) push_swap(h, big[len - 1], 0, 0); free(big); finish(h); }
void which_swap(t_shell *head) { if (l_len(head->sa) >= 40) push_swap(head, INT_MIN, 0, 0); else { while (ft_sorted(head->sa) == 0) small_swap(head); } }
int main(int argc, char **argv) { if (argc == 1 || (ft_strcmp(argv[1], "-v") == 0 && argc == 2)) return (0); if (argc < 2 || (ft_strcmp(argv[1], "-v") == 0 && argc < 3)) ft_error(0); else push_swap(argv); return (0); }
int main(int argc, char **argv) { t_dlist *l_a; t_dlist *l_b; if (argc <= 1) show_usage(); argv++; l_a = list_new(); l_b = list_new(); while (*argv) { l_a = list_append(l_a, ft_atoi(*argv)); argv++; } push_swap(l_a, l_b); return (0); }
int push_swap(int *l_a, int count) { int pos_min; int ra_count; ra_count = 0; pos_min = find_lowest_number(l_a, count); while (ra_count <= pos_min) { rotate(l_a, count); ra_count++; } print_ra(pos_min); if (count == 0) return (0); write(1, "pb ", 3); push_swap(l_a, count - 1); return (0); }
void push_swap2(t_dbl **a, t_dbl **b, t_option option, t_dbllist **lstactions) { int i; while ((*b)->length != 0) { action_fusion(b, i, lstactions); ft_push_pile(b, a); ft_lstdbladd(lstactions, "pa", 3); push_swap(a, b, option, lstactions); if (option.v) { if (option.c) ft_affiche_color(*a, *b, 0); else ft_affiche(*a, *b); } } }
int main(int ac, char **av) { int *l_a; int count; count = 0; l_a = malloc(sizeof(int) * ac); while (count < (ac - 1)) { l_a[count] = (my_getnbr(av[count + 1])); count++; } if (no_tri(l_a, ac -1) == -1) { write(1, "\n", 1); return (0); } push_swap(l_a, ac - 1); pa(ac - 1); free(l_a); return (0); }