create put at index asc and desc
This commit is contained in:
parent
2c3769be68
commit
7f5de6c4fd
@ -70,8 +70,8 @@ int main(int argc, char *argv[])
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ft_printf("min: %d\n", stack_min(state->a));
|
// ft_printf("min: %d\n", stack_min(state->a));
|
||||||
ft_printf("max: %d\n", stack_max(state->a));
|
// ft_printf("max: %d\n", stack_max(state->a));
|
||||||
sort5(state);
|
sort5(state);
|
||||||
print_state(state);
|
print_state(state);
|
||||||
return (0);
|
return (0);
|
||||||
|
|||||||
@ -30,19 +30,12 @@ int sort3(t_state *state)
|
|||||||
return (0);
|
return (0);
|
||||||
if (a < b && b < c)
|
if (a < b && b < c)
|
||||||
return (1);
|
return (1);
|
||||||
else if (a < b && b > c)
|
else if (a < b && b > c && a < c)
|
||||||
{
|
{
|
||||||
rra(state);
|
rra(state);
|
||||||
if (a < c)
|
|
||||||
sa(state);
|
|
||||||
}
|
|
||||||
else if (a > c && b < c)
|
|
||||||
ra(state);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sa(state);
|
sa(state);
|
||||||
if (b > c)
|
|
||||||
rra(state);
|
|
||||||
}
|
}
|
||||||
|
else if (!(a > c && b < c))
|
||||||
|
sa(state);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,5 @@ int sort5(t_state *state)
|
|||||||
merge_to_a(state);
|
merge_to_a(state);
|
||||||
merge_to_a(state);
|
merge_to_a(state);
|
||||||
rotate_a_to_top(state);
|
rotate_a_to_top(state);
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "libft.h"
|
||||||
#include "push_swap.h"
|
#include "push_swap.h"
|
||||||
|
|
||||||
int shortest_rotate(int index, int size)
|
int shortest_rotate(int index, int size)
|
||||||
@ -75,52 +76,34 @@ int ft_min(int a, int b)
|
|||||||
return (b);
|
return (b);
|
||||||
}
|
}
|
||||||
|
|
||||||
int put_at_index_desc(int number, t_list *stack)
|
int count_gt(int n, t_list *stack)
|
||||||
{
|
{
|
||||||
int i;
|
int count;
|
||||||
|
|
||||||
i = 0;
|
count = 0;
|
||||||
if (number < stack_min(stack) || number > stack_max(stack))
|
while (stack)
|
||||||
i = ft_min(
|
|
||||||
index_of(stack_min(stack), stack),
|
|
||||||
index_of(stack_max(stack), stack));
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
while (number < *(int *) ft_lstat(stack, i)->content)
|
if (*(int *) stack->content > n)
|
||||||
i++;
|
count++;
|
||||||
while (number < *(int *) ft_lstat(stack, i)->content
|
stack = stack->next;
|
||||||
&& number < *(int *) ft_lstat(stack, i + 1)->content
|
|
||||||
&& i < ft_lstsize(stack))
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
ft_printf("%d\n", i);
|
|
||||||
}
|
}
|
||||||
if (i == ft_lstsize(stack))
|
return (count);
|
||||||
return (0);
|
|
||||||
return (i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int put_at_index_asc(int number, t_list *stack)
|
int put_at_index_asc(int number, t_list *stack)
|
||||||
{
|
{
|
||||||
int i;
|
const int i = index_of(stack_min(stack), stack);
|
||||||
|
const int size = ft_lstsize(stack);
|
||||||
|
const int gt = count_gt(number, stack);
|
||||||
|
|
||||||
i = 0;
|
return ((i + gt) % size);
|
||||||
if (number < stack_min(stack) || number > stack_max(stack))
|
}
|
||||||
i = index_of(stack_min(stack), stack);
|
|
||||||
else
|
int put_at_index_desc(int number, t_list *stack)
|
||||||
{
|
{
|
||||||
while (number < *(int *) ft_lstat(stack, i)->content)
|
const int i = index_of(stack_max(stack), stack);
|
||||||
i++;
|
const int size = ft_lstsize(stack);
|
||||||
while (i + 1 < ft_lstsize(stack)
|
const int lt = size - count_gt(number, stack);
|
||||||
&&number > *(int *) ft_lstat(stack, i)->content
|
|
||||||
&& number > *(int *) ft_lstat(stack, i + 1)->content)
|
return ((i + lt) % size);
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
if (i == ft_lstsize(stack))
|
|
||||||
return (0);
|
|
||||||
return (i);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user