aboutsummaryrefslogtreecommitdiff
path: root/src/algo
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-09-18 16:39:52 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-09-18 16:39:52 +0200
commitdd0c485ac4975b7dd6d2e230213be1da50d0a065 (patch)
tree5fbd967f8b95c72fbb696bb089c2cc349d28b61f /src/algo
parent3c3f1115f6e9a9b914e2dcbd796501ca7ce85342 (diff)
downloadlibft-malloc.tar.gz
libft-malloc.tar.bz2
libft-malloc.zip
Removing unnecessary stuffmalloc
Diffstat (limited to 'src/algo')
-rw-r--r--src/algo/ft_bsearch.c32
-rw-r--r--src/algo/ft_compar_int.c18
-rw-r--r--src/algo/ft_heapsort.c54
-rw-r--r--src/algo/ft_is_set.c32
-rw-r--r--src/algo/ft_lfind.c28
-rw-r--r--src/algo/ft_lsearch.c23
-rw-r--r--src/algo/ft_mergesort.c76
-rw-r--r--src/algo/ft_qsort.c64
-rw-r--r--src/algo/ft_reverse.c27
9 files changed, 0 insertions, 354 deletions
diff --git a/src/algo/ft_bsearch.c b/src/algo/ft_bsearch.c
deleted file mode 100644
index 5132fa2..0000000
--- a/src/algo/ft_bsearch.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_bsearch.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 05:29:05 by cacharle #+# #+# */
-/* Updated: 2020/02/13 23:14:48 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-void *ft_bsearch(const void *base, size_t nel, size_t width,
- t_ftsearch_const *consts)
-{
- int res;
- size_t mid;
-
- if (nel < 1)
- return (NULL);
- mid = nel / 2;
- res = (consts->compar)(consts->key, base + mid * width);
- if (res == 0)
- return ((void*)base + mid * width);
- if (res < 0)
- return (ft_bsearch(base, mid, width, consts));
- else
- return (ft_bsearch(base + (mid + 1) * width, nel - mid - 1,
- width, consts));
-}
diff --git a/src/algo/ft_compar_int.c b/src/algo/ft_compar_int.c
deleted file mode 100644
index 848dc71..0000000
--- a/src/algo/ft_compar_int.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_compar_int.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/01/19 08:24:43 by cacharle #+# #+# */
-/* Updated: 2020/01/19 08:27:38 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft.h"
-
-int ft_compar_int(const void *a, const void *b)
-{
- return (*(int*)a - *(int*)b);
-}
diff --git a/src/algo/ft_heapsort.c b/src/algo/ft_heapsort.c
deleted file mode 100644
index d309624..0000000
--- a/src/algo/ft_heapsort.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_heapsort.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 02:59:22 by cacharle #+# #+# */
-/* Updated: 2020/02/10 04:22:19 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-/* static void st_build_max_heap(void *base, size_t nel, size_t width, */
-/* int (*compar)(const void *, const void *)) */
-/* { */
-/* int i; */
-/* */
-/* i = 1; */
-/* while (i < nel) */
-/* { */
-/* compar(base + i * width, base + 2 * i * width) */
-/* */
-/* i++; */
-/* } */
-/* } */
-/* */
-/* static void st_heapify(void *base, size_t nel, size_t width, */
-/* int (*compar)(const void *, const void *)) */
-/* { */
-/* */
-/* } */
-
-int ft_heapsort(void *base, size_t nel, size_t width,
- int (*compar)(const void *, const void *))
-{
- (void)base;
- (void)nel;
- (void)width;
- (void)compar;
- /* size_t i; */
- /* */
- /* if (nel < 2) */
- /* return (0); */
- /* st_build_max_heap(base, nel, width, compar); */
- /* i = -1; */
- /* while (++i < nel) */
- /* { */
- /* ft_memswap(base, base + (nel - i - 1) * width); */
- /* st_heapify(base, nel - i - 1, width, compar); */
- /* } */
- return (0);
-}
diff --git a/src/algo/ft_is_set.c b/src/algo/ft_is_set.c
deleted file mode 100644
index 3e7ae31..0000000
--- a/src/algo/ft_is_set.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_is_set.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/01/19 07:17:15 by cacharle #+# #+# */
-/* Updated: 2020/02/10 02:51:41 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft.h"
-#include "libft_algo.h"
-
-t_ftbool ft_is_set(void *base, size_t nel, size_t width,
- t_ftcompar_func compar)
-{
- size_t i;
-
- if (nel < 2)
- return (TRUE);
- ft_qsort(base, nel, width, compar);
- i = 0;
- while (i < nel - 1)
- {
- if (compar(base + (i * width), base + ((i + 1) * width)) == 0)
- return (FALSE);
- i++;
- }
- return (TRUE);
-}
diff --git a/src/algo/ft_lfind.c b/src/algo/ft_lfind.c
deleted file mode 100644
index 8538f50..0000000
--- a/src/algo/ft_lfind.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_lfind.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 05:49:19 by cacharle #+# #+# */
-/* Updated: 2020/02/10 05:58:19 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-void *ft_lfind(const void *base, size_t *nelp, size_t width,
- t_ftsearch_const *consts)
-{
- size_t i;
-
- i = 0;
- while (i < *nelp)
- {
- if ((consts->compar)(consts->key, base + i * width) == 0)
- return ((void*)base + i * width);
- i++;
- }
- return (NULL);
-}
diff --git a/src/algo/ft_lsearch.c b/src/algo/ft_lsearch.c
deleted file mode 100644
index 4c77bca..0000000
--- a/src/algo/ft_lsearch.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_lsearch.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 05:53:57 by cacharle #+# #+# */
-/* Updated: 2020/02/10 05:59:33 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-void *ft_lsearch(const void *base, size_t *nelp, size_t width,
- t_ftsearch_const *consts)
-{
- void *found;
-
- if ((found = ft_lfind(base, nelp, width, consts)) != NULL)
- return (found);
- return (ft_memcpy((void*)base + (*nelp)++ * width, consts->key, width));
-}
diff --git a/src/algo/ft_mergesort.c b/src/algo/ft_mergesort.c
deleted file mode 100644
index 25b4255..0000000
--- a/src/algo/ft_mergesort.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_mergesort.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 02:26:41 by cacharle #+# #+# */
-/* Updated: 2020/02/13 23:14:21 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-static int st_mergesort_error(void *left, void *right)
-{
- free(left);
- free(right);
- return (-1);
-}
-
-static void st_merge_sorted(struct s_merge_sorted_arrays *arrays, size_t nel,
- size_t width, int (*compar)(const void *, const void *))
-{
- size_t bi;
- size_t li;
- size_t ri;
- size_t mid;
-
- mid = nel / 2;
- bi = 0;
- li = 0;
- ri = 0;
- while (li < mid && ri < nel - mid)
- {
- if (compar(arrays->left + li * width, arrays->right + ri * width) < 0)
- ft_memcpy(arrays->base + bi * width,
- arrays->left + li++ * width, width);
- else
- ft_memcpy(arrays->base + bi * width,
- arrays->right + ri++ * width, width);
- bi++;
- }
- while (li < mid)
- ft_memcpy(arrays->base + bi++ * width,
- arrays->left + li++ * width, width);
- while (ri < nel - mid)
- ft_memcpy(arrays->base + bi++ * width,
- arrays->right + ri++ * width, width);
-}
-
-int ft_mergesort(void *base, size_t nel, size_t width,
- int (*compar)(const void *, const void *))
-{
- size_t mid;
- struct s_merge_sorted_arrays arrays;
-
- if (nel < 2)
- return (0);
- mid = nel / 2;
- if ((arrays.left = malloc(mid * width)) == NULL)
- return (-1);
- if ((arrays.right = malloc((nel - mid) * width)) == NULL)
- return (st_mergesort_error(arrays.left, NULL));
- ft_memcpy(arrays.left, base, mid * width);
- ft_memcpy(arrays.right, base + mid * width, (nel - mid) * width);
- if (ft_mergesort(arrays.left, mid, width, compar) == -1)
- return (st_mergesort_error(arrays.left, arrays.right));
- if (ft_mergesort(arrays.right, nel - mid, width, compar) == -1)
- return (st_mergesort_error(arrays.left, arrays.right));
- arrays.base = base;
- st_merge_sorted(&arrays, nel, width, compar);
- free(arrays.left);
- free(arrays.right);
- return (0);
-}
diff --git a/src/algo/ft_qsort.c b/src/algo/ft_qsort.c
deleted file mode 100644
index 9bcfcdf..0000000
--- a/src/algo/ft_qsort.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_qsort.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/01/19 07:25:51 by cacharle #+# #+# */
-/* Updated: 2020/02/10 02:55:14 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-static t_ftrange ft_range_new(int lo, int hi)
-{
- t_ftrange range;
-
- range.lo = lo;
- range.hi = hi;
- return (range);
-}
-
-static int ft_qsort_partition(void *base, t_ftrange range,
- size_t width, t_ftcompar_func compar)
-{
- void *pivot;
- int p;
- int i;
-
- pivot = base + (range.hi * width);
- p = range.lo;
- i = range.lo - 1;
- while (++i < range.hi)
- {
- if (compar(base + (i * width), pivot) < 0)
- {
- ft_memswap(base + (i * width), base + (p * width), width);
- p++;
- }
- }
- ft_memswap(pivot, base + (p * width), width);
- return (p);
-}
-
-static void ft_qsort_rec(void *base, t_ftrange range,
- size_t width, t_ftcompar_func compar)
-{
- int pivot;
-
- if (range.lo >= range.hi)
- return ;
- pivot = ft_qsort_partition(base, range, width, compar);
- ft_qsort_rec(base, ft_range_new(range.lo, pivot - 1), width, compar);
- ft_qsort_rec(base, ft_range_new(pivot + 1, range.hi), width, compar);
-}
-
-void ft_qsort(void *base, size_t nel, size_t width,
- t_ftcompar_func compar)
-{
- if (width == 0 || nel < 2)
- return ;
- ft_qsort_rec(base, ft_range_new(0, nel - 1), width, compar);
-}
diff --git a/src/algo/ft_reverse.c b/src/algo/ft_reverse.c
deleted file mode 100644
index 0bc447f..0000000
--- a/src/algo/ft_reverse.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_reverse.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/10 05:07:13 by cacharle #+# #+# */
-/* Updated: 2020/02/10 05:19:22 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "libft_algo.h"
-
-void ft_reverse(void *base, size_t nel, size_t width)
-{
- size_t i;
-
- i = 0;
- nel--;
- while (i < nel)
- {
- ft_memswap(base + i * width, base + nel * width, width);
- i++;
- nel--;
- }
-}