en cours d'ajouts uniquement des algo de 5 necessaires

This commit is contained in:
hugogogo
2021-09-26 16:30:29 +02:00
parent 7d9643bf63
commit 79f1ddb4ad
3 changed files with 261 additions and 3 deletions

Binary file not shown.

BIN
push_swap

Binary file not shown.

View File

@@ -280,6 +280,264 @@ int order_is(t_stack *list, int nbr)
return (order);
}
void sort_5(t_stack **a, t_list *solution)
{
int order;
48 67 83 54 65
1 4 5 2 3
21 34 20 17 28
3 5 2 1 4
11 13 12 7 10
3 4 5 1 2
6 -3 -12 2 5
5 2 1 3 4
ra(a, &solution);
sa(a, &solution);
rra(a, &solution);
order = order_is(*a, 5);
if (order == 12345)
{
s
r
s
r
s
r
s
rr
rr
rr
s
r
s
r
s
rr
rr
s
r
s
rr
s
}
/*
else if (order == 12354)
else if (order == 12435)
else if (order == 12453)
else if (order == 12534)
else if (order == 12543)
else if (order == 13245)
else if (order == 13254)
else if (order == 13425)
else if (order == 13452)
else if (order == 13524)
else if (order == 13542)
else if (order == 14235)
*/
else if (order == 14253)
{
|14253
r 3|1425
s 3|1452
r 23|145
s 23|154
r 423|15
s 423|51
rr 23|514
s 23|541
rr 3|5412
s 3|5421
rr |54213
s |54231
r 1|5423
s 1|5432
rr |54321
}
/*
else if (order == 14325)
else if (order == 14352)
else if (order == 14523)
else if (order == 14532)
else if (order == 15234)
else if (order == 15243)
else if (order == 15324)
else if (order == 15342)
else if (order == 15423)
else if (order == 15432)
else if (order == 21345)
else if (order == 21354)
else if (order == 21435)
else if (order == 21453)
else if (order == 21534)
else if (order == 21543)
else if (order == 23145)
else if (order == 23154)
else if (order == 23415)
else if (order == 23451)
else if (order == 23514)
else if (order == 23541)
else if (order == 24135)
else if (order == 24153)
else if (order == 24315)
else if (order == 24351)
else if (order == 24513)
else if (order == 24531)
else if (order == 25134)
else if (order == 25143)
else if (order == 25314)
else if (order == 25341)
else if (order == 25413)
else if (order == 25431)
else if (order == 31245)
else if (order == 31254)
else if (order == 31425)
else if (order == 31452)
else if (order == 31524)
else if (order == 31542)
else if (order == 32145)
else if (order == 32154)
else if (order == 32415)
else if (order == 32451)
else if (order == 32514)
else if (order == 32541)
else if (order == 34125)
else if (order == 34152)
else if (order == 34215)
else if (order == 34251)
*/
else if (order == 34512)
{
|34512
r 2|3451
r 12|345
s 12|354
r 412|35
s 412|53
rr 12|534
s 12|543
rr 2|5431
rr |54312
s |54321
}
/*
else if (order == 34521)
else if (order == 35124)
else if (order == 35142)
*/
else if (order == 35214)
{
|35214
s |35241
r 1|3524
s 1|3542
r 21|354
r 421|35
s 421|53
rr 21|534
s 21|543
rr 1|5432
rr |54321
}
/*
else if (order == 35241)
else if (order == 35412)
else if (order == 35421)
else if (order == 41235)
else if (order == 41253)
else if (order == 41325)
else if (order == 41352)
else if (order == 41523)
else if (order == 41532)
else if (order == 42135)
else if (order == 42153)
else if (order == 42315)
else if (order == 42351)
else if (order == 42513)
else if (order == 42531)
else if (order == 43125)
else if (order == 43152)
else if (order == 43215)
else if (order == 43251)
else if (order == 43512)
else if (order == 43521)
else if (order == 45123)
else if (order == 45132)
else if (order == 45213)
else if (order == 45231)
else if (order == 45312)
else if (order == 45321)
else if (order == 51234)
else if (order == 51243)
else if (order == 51324)
else if (order == 51342)
else if (order == 51423)
else if (order == 51432)
*/
else if (order == 52134)
{
|52134
s |52143
r 3|5214
s 3|5241
r 13|524
s 13|542
rr 3|5421
rr |54213
s |54231
r 1|5423
s 1|5432
rr |54321
}
/*
else if (order == 52143)
else if (order == 52314)
else if (order == 52341)
else if (order == 52413)
else if (order == 52431)
else if (order == 53124)
else if (order == 53142)
else if (order == 53214)
else if (order == 53241)
else if (order == 53412)
else if (order == 53421)
else if (order == 54123)
else if (order == 54132)
else if (order == 54213)
else if (order == 54231)
else if (order == 54312)
else if (order == 54321)
*/
}
void sort_4(t_stack **a, t_list *solution)
{
int order;
@@ -571,9 +829,9 @@ void mini_sort(t_stack **a, t_list *solution)
sort_3(a, solution);
else if(list_size == 4)
sort_4(a, solution);
/*
else if(list_size == 5)
sort_5(a, solution);
/*
else if(list_size == 6)
sort_6(a, solution);
else
@@ -585,12 +843,12 @@ void mini_sort(t_stack **a, t_list *solution)
void hugo_sort(t_stack **a, t_stack **b, t_list *solution)
{
if (sublist_size(*a) > 3)
if (sublist_size(*a) > 5)
divide_a(a, b, solution);
else
{
mini_sort(a, solution);
if (sublist_size(*b) > 3)
if (sublist_size(*b) > 5)
divide_b(a, b, solution);
else if (sublist_size(*b) > 0)
send_sublist_to_a(a, b, solution);