diff options
| author | Dominik Kaiser | 2024-04-27 16:30:16 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-04-27 16:30:16 +0200 |
| commit | 61926f8658cddccf59b84be222f48edc1e7b8718 (patch) | |
| tree | a59d7b2e5265283d7ef7bddf160bf87ba3385cc8 /sorting.c | |
| parent | 9ec4dd2e78c61a2b2be8d645d3e523f954d83e9e (diff) | |
| download | push_swap-61926f8658cddccf59b84be222f48edc1e7b8718.tar.gz push_swap-61926f8658cddccf59b84be222f48edc1e7b8718.zip | |
Add sorting for small stacks
Diffstat (limited to 'sorting.c')
| -rw-r--r-- | sorting.c | 16 |
1 files changed, 3 insertions, 13 deletions
@@ -6,7 +6,7 @@ /* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/13 15:04:19 by dkaiser #+# #+# */ -/* Updated: 2024/04/26 18:35:27 by dkaiser ### ########.fr */ +/* Updated: 2024/04/27 14:36:06 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,18 +28,6 @@ static int is_sorted(t_stack *stack) return (1); } -static void sort_three(t_psdata *data) -{ - if (data->a->stack[1] > data->a->stack[0] - && data->a->stack[1] > data->a->stack[2]) - run_command(data, RRA); - else if (data->a->stack[0] > data->a->stack[1] - && data->a->stack[0] > data->a->stack[2]) - run_command(data, RA); - if (data->a->stack[0] > data->a->stack[1]) - run_command(data, SA); -} - static void ps_radixsort(t_psdata *data, int bit) { int i; @@ -69,6 +57,8 @@ void stack_sort(t_psdata *data) run_command(data, SA); else if (data->a->size == 3) sort_three(data); + else if (data->a->size == 4 || data->a->size == 5) + sort_few(data); else ps_radixsort(data, 0); } |
