From 9ec4dd2e78c61a2b2be8d645d3e523f954d83e9e Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Fri, 26 Apr 2024 18:36:07 +0200 Subject: Sort three and some norme cleanup --- sorting.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'sorting.c') diff --git a/sorting.c b/sorting.c index ec8a336..88055e7 100644 --- a/sorting.c +++ b/sorting.c @@ -6,7 +6,7 @@ /* By: dkaiser 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; @@ -51,6 +63,12 @@ static void ps_radixsort(t_psdata *data, int bit) void stack_sort(t_psdata *data) { - if (!is_sorted(data->a)) + if (is_sorted(data->a)) + return ; + else if (data->a->size == 2) + run_command(data, SA); + else if (data->a->size == 3) + sort_three(data); + else ps_radixsort(data, 0); } -- cgit v1.2.3