-
Notifications
You must be signed in to change notification settings - Fork 0
/
sort_utils.c
72 lines (65 loc) · 1.68 KB
/
sort_utils.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* sort_utils.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: issierra <issierra@student.42madrid.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/23 09:10:26 by issierra #+# #+# */
/* Updated: 2023/12/24 16:42:22 by issierra ### ########.fr */
/* */
/* ************************************************************************** */
#include "push_swap.h"
void sort_three(t_stack **lst)
{
if ((*lst)->nbr > (*lst)->next->nbr
&& (*lst)->nbr > (*lst)->next->next->nbr)
ra(lst);
else if (((*lst)->next->nbr > (*lst)->nbr)
&& ((*lst)->next->nbr > (*lst)->next->next->nbr))
rra(lst);
if ((*lst)->nbr > (*lst)->next->nbr)
sa(lst);
}
t_stack *max(t_stack *lst)
{
int max;
t_stack *aux;
max = -2147483648;
while (lst)
{
if (lst->nbr > max)
{
max = lst->nbr;
aux = lst;
}
lst = lst->next;
}
return (aux);
}
t_stack *min(t_stack *lst)
{
int min;
t_stack *aux;
min = 2147483647;
while (lst)
{
if (lst->nbr < min)
{
min = lst->nbr;
aux = lst;
}
lst = lst->next;
}
return (aux);
}
void reorder_a(t_stack **a)
{
while ((*a)->nbr != min(*a)->nbr)
{
if (min(*a)->ab_medium)
ra(a);
else
rra(a);
}
}