From 682be2acbd4c8a46e6aaaba97d8e383eedcdaaa3 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sun, 26 Sep 2021 22:29:21 +0200 Subject: [PATCH] fichiers un peu mieux rangees --- Makefile | 5 +- builds/algo.o | Bin 121176 -> 104320 bytes builds/minisort.o | Bin 0 -> 101312 bytes builds/minisort_2ways_bubble_sort.o | Bin 0 -> 101672 bytes builds/minisort_by_rank.o | Bin 0 -> 114960 bytes includes/push_swap.h | 30 + push_swap | Bin 203232 -> 210992 bytes srcs/algo.c | 869 +--------------------------- srcs/minisort.c | 65 +++ srcs/minisort_2ways_bubble_sort.c | 63 ++ srcs/minisort_by_rank.c | 632 ++++++++++++++++++++ 11 files changed, 800 insertions(+), 864 deletions(-) create mode 100644 builds/minisort.o create mode 100644 builds/minisort_2ways_bubble_sort.o create mode 100644 builds/minisort_by_rank.o create mode 100644 srcs/minisort.c create mode 100644 srcs/minisort_2ways_bubble_sort.c create mode 100644 srcs/minisort_by_rank.c diff --git a/Makefile b/Makefile index e671d4d..74e33e1 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,10 @@ SRCS = push_swap.c \ push.c \ rotate.c \ reverse_rotate.c \ - algo_bubble_sort.c + algo_bubble_sort.c \ + minisort.c \ + minisort_by_rank.c \ + minisort_2ways_bubble_sort.c ODIR = ./builds diff --git a/builds/algo.o b/builds/algo.o index b99930de2cdecc3174eed5bfe3236f5222ce4019..8a23f2563a34d2df15a7b09f7924465d339ee257 100644 GIT binary patch delta 26411 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 p9$G$+!+41dLjFCS9gf>P{3q`?FyxGCmm@ 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 PD?EmqZiN0fL~HxgS{dA6jms0{q4r^E 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 literal 0 HcmV?d00001 diff --git a/builds/minisort_2ways_bubble_sort.o b/builds/minisort_2ways_bubble_sort.o new file mode 100644 index 0000000000000000000000000000000000000000..0468880365f053df564b684f1d897723e2070dc2 GIT binary patch literal 101672 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 literal 0 HcmV?d00001 diff --git a/includes/push_swap.h b/includes/push_swap.h index e128159..d91aad1 100644 --- a/includes/push_swap.h +++ b/includes/push_swap.h @@ -37,8 +37,38 @@ void ps_stop(t_stack *stack, t_list *lst, int i); /* ** algo.c */ +int sublist_size(t_stack *list); +int nbr_element_smaller(t_stack *list, int size, int pivot); +int find_pivot(t_stack *list, int size); +int divide_a(t_stack **a, t_stack **b, t_list *solution); +int divide_b(t_stack **a, t_stack **b, t_list *solution); +void send_sublist_to_a(t_stack **a, t_stack **b, t_list *solution); void hugo_sort(t_stack **a, t_stack **b, t_list *lst); +/* +** minisort.c +*/ +int find_biggest(t_stack *list, int size); +void minisort(t_stack **list, t_list *solution); + +/* +** minisort_by_rank.c +*/ +int find_rank(t_stack *list, int nbr, int i); +int order_is(t_stack *list, int nbr); +void sort_5(t_stack **a, t_list *solution); +void sort_4(t_stack **a, t_list *solution); +void sort_3(t_stack **a, t_list *solution); +void sort_2(t_stack **a, t_list *solution); +void mini_sort(t_stack **a, t_list *solution); + +/* +** minisort_2ways_bubble_sort.c +*/ +void mark_sublist(t_stack *list); +int find_smallest(t_stack *list); +void sort_big(t_stack **a, t_stack **b, t_list *solution); + /* ** print.c */ diff --git a/push_swap b/push_swap index 605e25a1f6b27bfae1b11a232bbbbb293e7429a8..cbec3333e35064900270fff1236860bd264a010d 100755 GIT binary patch delta 22882 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 KS@%U4TKqqwaTvk? delta 21557 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 diff --git a/srcs/algo.c b/srcs/algo.c index 9f72bae..f97c63a 100644 --- a/srcs/algo.c +++ b/srcs/algo.c @@ -1,12 +1,5 @@ #include "push_swap.h" -int last_element(t_stack *a) -{ - while (a->next) - a = a->next; - return (a->n); -} - // size is initialized to 1 because the loop check the next element, so it will end one step before reaching it // it checks the next one to avoid handle the first one with ->limit set to 1 int sublist_size(t_stack *list) @@ -126,778 +119,17 @@ void send_sublist_to_a(t_stack **a, t_stack **b, t_list *solution) mark_step(solution, "send_sublist_to_a"); } -/* -int find_smallest(t_stack *list, int size) -{ - t_stack *head; - int smallest; - int position; - - smallest = list->n; - head = list; - while (--size > 0) - { - head = head->next; - if (head->n < smallest) - smallest = head->n; - } - position = 0; - while (list->n != smallest) - { - position++; - list = list->next; - } - return (position); -} - -void mini_sort(t_stack **a, t_stack **b, t_list *solution) -{ - int list_size; - int next; - int temp; - - list_size = sublist_size(*a); - if(list_size == 1) - return ; - (*a)->limit = 0; - while (--list_size > 0) - { - next = find_smallest(*a, list_size + 1); - temp = next; - while (next-- > 0) - ra(a, &solution); - pb(b, a, &solution); - while (temp-- > 0) - rra(a, &solution); - } - list_size = sublist_size(*b); - while (list_size-- > 0) - pa(a, b, &solution); - (*a)->limit = 1; - mark_step(solution, "mini_sort"); -} -*/ - -void mark_sublist(t_stack *list) -{ - while (list && list->limit != 1) - { - if (list->limit == 2) - list->limit = 0; - else if (list->limit == 0) - list->limit = 2; - list = list->next; - } -} - -int find_smallest(t_stack *list) -{ - int i; - int smallest; - int position; - - smallest = list->n; - position = 1; - i = 0; - while (list) - { - i++; - if (list->limit == 2 && list->n < smallest) - { - smallest = list->n; - position = i; - } - list = list->next; - } - if (i - position + 1 < position) - position = position - i - 1; - return (position); -} - -void sort_big(t_stack **a, t_stack **b, t_list *solution) -{ - int list_size; - int next; - int i; - - list_size = sublist_size(*a); - mark_sublist(*a); - while (--list_size >= 0) - { - i = 0; - next = find_smallest(*a); - if (next > 0) - while (++i < next) - ra(a, &solution); - else if (next < 0) - while (i-- > next) - rra(a, &solution); - pb(b, a, &solution); - } - list_size = sublist_size(*b); - while (list_size-- > 0) - pa(a, b, &solution); - mark_sublist(*a); -} - -int find_rank(t_stack *list, int nbr, int i) -{ - t_stack *head; - int comp; - int rank; - int j; - - head = list; - j = 0; - while (++j <= nbr - i) - head = head->next; - comp = head->n; - head = list; - j = 0; - rank = 1; - while (++j <= nbr) - { - if (comp > head->n) - rank++; - head = head->next; - } - return (rank); -} - -int order_is(t_stack *list, int nbr) -{ - int order; - int rank; - int i; - - i = 0; - order = 0; - while (++i <= nbr) - { - rank = find_rank(list, nbr, i); - order = order * 10 + rank; - } - return (order); -} - -void sort_5(t_stack **a, t_list *solution) -{ - int order; - -// algos de 5 uniquement necessaires pour trier cette liste : -// 5 10 2 7 65 -12 -3 6 12 28 17 13 54 83 20 11 34 21 67 48 -// 48 67 83 54 65 | 21 34 20 17 28 | 11 13 12 7 10 | 6 -3 -12 2 5 -// 1 4 5 2 3 | 3 5 2 1 4 | 3 4 5 1 2 | 5 2 1 3 4 - - order = order_is(*a, 5); - if (order == 12345) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - /* - 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) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - /* - 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) - { - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - /* - else if (order == 34521) - - else if (order == 35124) - else if (order == 35142) - */ - else if (order == 35214) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - } - /* - 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) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - /* - 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) - */ -} - - -// suite de nombre qui rate le test : -// 4 49 63 8 28 193 103 120 197 188 185 36 133 62 86 126 80 112 131 102 118 145 136 24 5 149 13 7 151 55 61 21 174 116 77 10 33 154 16 47 53 177 165 15 172 12 81 190 186 194 196 50 141 1 67 42 79 170 74 9 117 91 45 158 162 169 83 191 106 180 37 66 110 134 122 30 82 200 89 127 182 71 132 32 35 48 160 69 137 95 38 113 135 173 51 84 199 166 129 150 -// 95 89 91 102 -// 3 1 2 4 -// version complete : -// sa -// a: 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 89 102 91 -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// ra -// a: 91 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 89 102 -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// sa -// a: 91 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// rra -// a: 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 91 -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// rra -// a: 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 91 200 -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// sa ( mini_sort ) -// a: 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 200 91] -// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84] -// version raccourcie : -// sa -// a: 200 199 197 196] ...] 95 89 102 91 -// b: ...] -// ra -// a: 91 200 199 197 196] ...] 95 89 102 -// b: ...] -// sa -// a: 91 200 199 197 196] ...] 95 102 89 -// b: ...] -// rra -// a: 200 199 197 196] ...] 95 102 89 91 -// b: ...] -// rra -// a: 199 197 196] ...] 95 102 89 91 200 -// b: ...] -// sa ( mini_sort ) -// a: 199 197 196] ...] 95 102 89 200 91] -// b: ...] -// -// |3124 -// s |3142 -// r 2|314 -// s 2|341 -// rr |3412 -// rr |3412# -// s |341#2 -// -// |3124 -// s |3142 -// r 2|314 -// s 2|341 -// r 12|34 -// s 12|43 -// rr 2|431 -// rr |4312 -// s |4312 -// -void sort_4(t_stack **a, t_list *solution) -{ - int order; - - order = order_is(*a, 4); - if (order == 1234) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 1243) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 1324) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 1342) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 1423) - { - sa(a, &solution); - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 1432) - { - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 2134) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 2143) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 2314) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 2341) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 2413) - { - sa(a, &solution); - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 2431) - { - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 3124) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 3142) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 3214) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - } - else if (order == 3241) - { - ra(a, &solution); - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - } - else if (order == 3412) - { - sa(a, &solution); - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - } - else if (order == 3421) - { - ra(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - rra(a, &solution); - } - else if (order == 4123) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 4132) - { - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 4213) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 4231) - { - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 4312) - sa(a, &solution); -} - -void sort_3(t_stack **a, t_list *solution) -{ - int order; - - order = order_is(*a, 3); - if (order == 123) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 132) - { - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - sa(a, &solution); - } - else if (order == 213) - { - sa(a, &solution); - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 231) - { - ra(a, &solution); - sa(a, &solution); - rra(a, &solution); - } - else if (order == 312) - sa(a, &solution); -} - -void sort_2(t_stack **a, t_list *solution) -{ - int order; - - order = order_is(*a, 2); - if (order == 12) - sa(a, &solution); -} -void mini_sort(t_stack **a, t_list *solution) -{ - int list_size; - - list_size = sublist_size(*a); - if(list_size == 1) - return ; - (*a)->limit = 0; - if(list_size == 2) - sort_2(a, solution); - else if(list_size == 3) - 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 - sort_big(a, b, solution); - */ - (*a)->limit = 1; - mark_step(solution, "mini_sort"); -} - void hugo_sort(t_stack **a, t_stack **b, t_list *solution) { - if (sublist_size(*a) > 4) + if (sublist_size(*a) > 5) divide_a(a, b, solution); else { - mini_sort(a, solution); - if (sublist_size(*b) > 3) + + // sort_big(a, b, solution) + // mini_sort(a, solution); + minisort(a, solution); + if (sublist_size(*b) > 5) divide_b(a, b, solution); else if (sublist_size(*b) > 0) send_sublist_to_a(a, b, solution); @@ -907,92 +139,3 @@ void hugo_sort(t_stack **a, t_stack **b, t_list *solution) hugo_sort(a, b, solution); } -// /* -// ** n is the nbr of elements of the list that are competiting -// ** position start at 0, ie position 3 is the 4th element -// */ -// int match(t_stack *a, int n, int *smaller) -// { -// int position; -// int i; -// -// *smaller = a->n; -// position = 0; -// i = 1; -// while (a->next && i < n) -// { -// a = a->next; -// if (a->n < *smaller) -// { -// *smaller = a->n; -// position = i; -// } -// i++; -// } -// return (position); -// } -// -// void nb_to_top(t_stack **a, t_list *solution, int i) -// { -// int n; -// -// if (!i) -// return ; -// n = i; -// while (--n) -// ra(a, &solution); -// n = i; -// sa(a, &solution); -// while (--n) -// { -// rra(a, &solution); -// sa(a, &solution); -// } -// } -// -// void push_to_b(t_stack **a, t_stack **b, t_list *solution, int position) -// { -// int i; -// -// i = position; -// while (i--) -// ra(a, &solution); -// pb(b, a, &solution); -// while (++i < position) -// rra(a, &solution); -// } -// -// /* -// ** so far it's bullshit :p -// */ -// void hugo_sort(t_stack **a, t_stack **b, t_list *solution) -// { -// int last; -// int position; -// int value; -// -// last = last_element(*a); -// while ((*a)->n != last) -// { -// position = match(*a, 4, &value); -// if (!(*b) || value > (*b)->n) -// push_to_b(a, b, solution, position); -// else -// ra(a, &solution); -// } -// } -/* - sa(a, &solution); - ra(a, &solution); - rra(a, &solution); - - pb(b, a, &solution); - pa(a, b, &solution); - - sb(b, &solution); - rb(b, &solution); - rrb(b, &solution); - - rrr(a, b, &solution); - rr(a, b, &solution); -*/ diff --git a/srcs/minisort.c b/srcs/minisort.c new file mode 100644 index 0000000..6d30600 --- /dev/null +++ b/srcs/minisort.c @@ -0,0 +1,65 @@ +#include "push_swap.h" + +int find_biggest(t_stack *list, int size) +{ + int biggest; + int position; + int i; + + biggest = list->n; + position = 1; + i = 1; + while (list && --size) + { + i++; + list = list->next; + if (biggest < list->n) + { + position = i; + biggest = list->n; + } + } + return (position); +} + +void push_biggest(t_stack **list, t_list *solution, int size, int big) +{ + t_stack *head; + int i; + + head = *list; + i = size; + while (i--) + { + + } +} + +void minisort(t_stack **list, t_list *solution) +{ + int list_size; + int next_big; + + list_size = sublist_size(*list); + if(list_size == 1) + return ; + (*list)->limit = 0; + next_big = find_biggest(*list, list_size); + push_biggest(list, solution, list_size, next_big); + (*list)->limit = 1; + mark_step(solution, "minisort"); +} + +/* +t_stack *test; +test = *list; +int w; +w = list_size; +while (w--) +{ + ft_printf("%i ", test->n); + test = test->next; +} +ft_printf("%i\n", next_big); +*/ + diff --git a/srcs/minisort_2ways_bubble_sort.c b/srcs/minisort_2ways_bubble_sort.c new file mode 100644 index 0000000..4a9f54a --- /dev/null +++ b/srcs/minisort_2ways_bubble_sort.c @@ -0,0 +1,63 @@ +#include "push_swap.h" + +void mark_sublist(t_stack *list) +{ + while (list && list->limit != 1) + { + if (list->limit == 2) + list->limit = 0; + else if (list->limit == 0) + list->limit = 2; + list = list->next; + } +} + +int find_smallest(t_stack *list) +{ + int i; + int smallest; + int position; + + smallest = list->n; + position = 1; + i = 0; + while (list) + { + i++; + if (list->limit == 2 && list->n < smallest) + { + smallest = list->n; + position = i; + } + list = list->next; + } + if (i - position + 1 < position) + position = position - i - 1; + return (position); +} + +void sort_big(t_stack **a, t_stack **b, t_list *solution) +{ + int list_size; + int next; + int i; + + list_size = sublist_size(*a); + mark_sublist(*a); + while (--list_size >= 0) + { + i = 0; + next = find_smallest(*a); + if (next > 0) + while (++i < next) + ra(a, &solution); + else if (next < 0) + while (i-- > next) + rra(a, &solution); + pb(b, a, &solution); + } + list_size = sublist_size(*b); + while (list_size-- > 0) + pa(a, b, &solution); + mark_sublist(*a); +} diff --git a/srcs/minisort_by_rank.c b/srcs/minisort_by_rank.c new file mode 100644 index 0000000..376e418 --- /dev/null +++ b/srcs/minisort_by_rank.c @@ -0,0 +1,632 @@ +#include "push_swap.h" + +int find_rank(t_stack *list, int nbr, int i) +{ + t_stack *head; + int comp; + int rank; + int j; + + head = list; + j = 0; + while (++j <= nbr - i) + head = head->next; + comp = head->n; + head = list; + j = 0; + rank = 1; + while (++j <= nbr) + { + if (comp > head->n) + rank++; + head = head->next; + } + return (rank); +} + +int order_is(t_stack *list, int nbr) +{ + int order; + int rank; + int i; + + i = 0; + order = 0; + while (++i <= nbr) + { + rank = find_rank(list, nbr, i); + order = order * 10 + rank; + } + return (order); +} + +// |12345 |....5 +// s |12354 |...5. +// r 4|1235 .|...5 +// s 4|1253 .|..5. +// r 34|125 ..|..5 +// s 34|152 ..|.5. +// r 34|15 ...|.5 +// s 34|51 ...|5. +// +// rr 34|512 ..|5.. +// rr 4|5123 .|5... +// rr |51234 |5.... +// +// s |51243 |.1243 +// r 3|5124 3|.124 +// s 3|5142 3|.142 +// r 23|514 23|.14 +// s 23|541 23|.41 +// rr 3|5412 3|.412 +// rr |54123 |.4123 +// s |54132 |.4132 +// r 2|5413 2|.413 +// s 2|5431 2|.431 +// rr |54312 |.4312 +// s |54321 |.4321 +// +// +// +// s |1243 |..4. +// r 3|124 .|..4 +// s 3|142 .|.4. +// r 23|14 ..|.4 +// s 23|41 ..|4. +// rr 3|412 .|4.. +// rr |4123 |4... +// +// s |4132 |.132 +// r 2|413 2|.13 +// s 2|431 2|.31 +// rr |4312 |.312 +// s |4321 |.321 +// +void sort_5(t_stack **a, t_list *solution) +{ + int order; + +// algos de 5 uniquement necessaires pour trier cette liste : +// 5 10 2 7 65 -12 -3 6 12 28 17 13 54 83 20 11 34 21 67 48 +// 48 67 83 54 65 | 21 34 20 17 28 | 11 13 12 7 10 | 6 -3 -12 2 5 +// 1 4 5 2 3 | 3 5 2 1 4 | 3 4 5 1 2 | 5 2 1 3 4 + + order = order_is(*a, 5); + if (order == 12345) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + /* + 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) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + /* + 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) + { + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + /* + else if (order == 34521) + + else if (order == 35124) + else if (order == 35142) + */ + else if (order == 35214) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + } + /* + 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) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + /* + 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; + + order = order_is(*a, 4); + if (order == 1234) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 1243) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 1324) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 1342) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 1423) + { + sa(a, &solution); + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 1432) + { + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 2134) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 2143) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 2314) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 2341) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 2413) + { + sa(a, &solution); + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 2431) + { + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 3124) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 3142) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 3214) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + } + else if (order == 3241) + { + ra(a, &solution); + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + } + else if (order == 3412) + { + sa(a, &solution); + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + } + else if (order == 3421) + { + ra(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + rra(a, &solution); + } + else if (order == 4123) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 4132) + { + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 4213) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 4231) + { + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 4312) + sa(a, &solution); +} + +void sort_3(t_stack **a, t_list *solution) +{ + int order; + + order = order_is(*a, 3); + if (order == 123) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 132) + { + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + sa(a, &solution); + } + else if (order == 213) + { + sa(a, &solution); + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 231) + { + ra(a, &solution); + sa(a, &solution); + rra(a, &solution); + } + else if (order == 312) + sa(a, &solution); +} + +void sort_2(t_stack **a, t_list *solution) +{ + int order; + + order = order_is(*a, 2); + if (order == 12) + sa(a, &solution); +} + +void mini_sort(t_stack **a, t_list *solution) +{ + int list_size; + + list_size = sublist_size(*a); + if(list_size == 1) + return ; + (*a)->limit = 0; + if(list_size == 2) + sort_2(a, solution); + else if(list_size == 3) + 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 + sort_big(a, b, solution); + */ + (*a)->limit = 1; + mark_step(solution, "mini_sort"); +}