en cours d'ajouts uniquement des algo de 5 necessaires
This commit is contained in:
BIN
builds/algo.o
BIN
builds/algo.o
Binary file not shown.
264
srcs/algo.c
264
srcs/algo.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user