/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* normalize.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gechavia +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/09/04 17:32:38 by gechavia #+# #+# */ /* Updated: 2025/09/04 17:32:39 by gechavia ### ########.fr */ /* */ /* ************************************************************************** */ #include "push_swap.h" static void swap_vals(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } static void sort_int_array(int *arr, int n) { int i; int j; i = 0; while (i < n) { j = i + 1; while (j < n) { if (arr[j] < arr[i]) swap_vals(&arr[i], &arr[j]); j = j + 1; } i = i + 1; } } static int index_in_array(int *arr, int n, int v) { int i; i = 0; while (i < n) { if (arr[i] == v) return (i); i = i + 1; } return (-1); } void normalize_stack(t_stack *a) { int *tmp; int j; int idx; tmp = (int *)malloc(sizeof(int) * a->size); if (!tmp) exit(1); j = 0; while (j < a->size) { tmp[j] = a->array[j]; j = j + 1; } sort_int_array(tmp, a->size); j = 0; while (j < a->size) { idx = index_in_array(tmp, a->size, a->array[j]); a->array[j] = idx; j = j + 1; } free(tmp); }