From 48fc8d0ffa3bfb766d28bce858eccb68fb0fdec5 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Fri, 10 Sep 2021 19:37:16 +0200 Subject: Added check for already sorted stack, Added special cases for length 3 stacks, Added test.sh benchmark and testing all permutations --- src/checker/check.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'src/checker/check.c') diff --git a/src/checker/check.c b/src/checker/check.c index 1459dc6..40550b5 100644 --- a/src/checker/check.c +++ b/src/checker/check.c @@ -6,12 +6,25 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/01/18 10:16:08 by cacharle #+# #+# */ -/* Updated: 2021/09/10 10:26:47 by charles ### ########.fr */ +/* Updated: 2021/09/10 15:36:14 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "checker.h" +static t_bool stack_sorted(t_stack *stack) +{ + int i; + + if (stack_length(stack) < 2) + return (TRUE); + i = stack->top + 1; + while (--i > 0) + if (stack->elements[i] > stack->elements[i - 1]) + return (FALSE); + return (TRUE); +} + t_status check(t_stack *a, t_stack *b) { t_status read_status; @@ -75,7 +88,7 @@ t_status exec_action(char action_id[ACTION_ID_BUF_SIZE], int i; i = 0; - while (ft_strcmp(action_id, g_actions[i].id) != 0) + while (i < g_actions_size && ft_strcmp(action_id, g_actions[i].id) != 0) i++; if (i == g_actions_size) return (STATUS_ERROR); @@ -91,16 +104,3 @@ t_status exec_action(char action_id[ACTION_ID_BUF_SIZE], return (STATUS_ERROR); return (STATUS_SUCCESS); } - -t_bool stack_sorted(t_stack *stack) -{ - int i; - - if (stack_length(stack) < 2) - return (TRUE); - i = stack->top + 1; - while (--i > 0) - if (stack->elements[i] > stack->elements[i - 1]) - return (FALSE); - return (TRUE); -} -- cgit