From fb11c45c1fa1246dbc80b491f55598698a932e5f Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Fri, 26 Apr 2024 13:56:36 +0200 Subject: Make norminette happy --- sorting.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'sorting.c') diff --git a/sorting.c b/sorting.c index 8f5d31f..ec8a336 100644 --- a/sorting.c +++ b/sorting.c @@ -6,13 +6,51 @@ /* By: dkaiser size < 2) + return (1); + i = 1; + while (i < stack->size) + { + if (stack->stack[i] < stack->stack[i - 1]) + return (0); + i++; + } + return (1); +} + +static void ps_radixsort(t_psdata *data, int bit) +{ + int i; + int size; + + i = 0; + size = data->a->size; + while (i < size) + { + if (data->a->size && ((data->a->stack[0] >> bit) & 1) == 0) + run_command(data, PB); + else if (data->a->size > 1) + run_command(data, RA); + i++; + } + while (data->b->size > 0) + run_command(data, PA); + if (!is_sorted(data->a)) + ps_radixsort(data, bit + 1); +} + +void stack_sort(t_psdata *data) +{ + if (!is_sorted(data->a)) + ps_radixsort(data, 0); } -- cgit v1.2.3