Skip to content

Commit 6d44278

Browse files
committed
feat: add quick sort for int *
1 parent 75740b5 commit 6d44278

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# By: amalsago <[email protected]> +#+ +:+ +#+ #
77
# +#+#+#+#+#+ +#+ #
88
# Created: 2018/11/15 11:06:32 by amalsago #+# #+# #
9-
# Updated: 2020/02/22 11:03:45 by amalsago ### ########.fr #
9+
# Updated: 2020/02/29 14:21:28 by amalsago ### ########.fr #
1010
# #
1111
# **************************************************************************** #
1212

@@ -106,6 +106,7 @@ SRCNAME = conversions/ft_atoi.c \
106106
print/ft_putstr.c \
107107
print/ft_putstr_fd.c \
108108
sorting/ft_qsort.c \
109+
sorting/ft_qsort_int.c \
109110
string/form_path.c \
110111
string/ft_getenv.c \
111112
string/ft_realpath.c \

includes/libft.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: amalsago <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2018/11/09 12:05:58 by amalsago #+# #+# */
9-
/* Updated: 2020/02/22 11:03:30 by amalsago ### ########.fr */
9+
/* Updated: 2020/02/29 14:21:10 by amalsago ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -139,6 +139,7 @@ void ft_putstr_fd(char const *s, int fd);
139139
*/
140140

141141
void ft_qsort(char **array, int left, int right);
142+
void ft_qsort_int(int *array, int lo, int hi);
142143

143144
/*
144145
** STRING

sources/sorting/ft_qsort_int.c

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/* ************************************************************************** */
2+
/* */
3+
/* ::: :::::::: */
4+
/* ft_qsort_int.c :+: :+: :+: */
5+
/* +:+ +:+ +:+ */
6+
/* By: amalsago <[email protected]> +#+ +:+ +#+ */
7+
/* +#+#+#+#+#+ +#+ */
8+
/* Created: 2020/02/29 13:46:40 by amalsago #+# #+# */
9+
/* Updated: 2020/02/29 14:32:57 by amalsago ### ########.fr */
10+
/* */
11+
/* ************************************************************************** */
12+
13+
#include "libft.h"
14+
15+
static int ft_partition(int *array, int lo, int hi)
16+
{
17+
int i;
18+
int j;
19+
int pivot;
20+
21+
i = lo;
22+
j = lo - 1;
23+
pivot = array[hi];
24+
while (i <= hi - 1)
25+
{
26+
if (array[i] <= pivot)
27+
{
28+
++j;
29+
ft_swap(&array[i], &array[j], sizeof(int));
30+
}
31+
++i;
32+
}
33+
ft_swap(&array[j + 1], &array[hi], sizeof(int));
34+
return (j + 1);
35+
}
36+
37+
void ft_qsort_int(int *array, int lo, int hi)
38+
{
39+
int pivot;
40+
41+
if (lo < hi)
42+
{
43+
pivot = ft_partition(array, lo, hi);
44+
ft_qsort_int(array, lo, pivot - 1);
45+
ft_qsort_int(array, pivot + 1, hi);
46+
}
47+
}

0 commit comments

Comments
 (0)