From 498b794ce5bae04495d916380927e9be23591e49 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Wed, 29 Dec 2021 13:37:57 +0100 Subject: feat: implement insertsort --- insertsort.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 insertsort.c (limited to 'insertsort.c') diff --git a/insertsort.c b/insertsort.c new file mode 100644 index 0000000..1a30a1a --- /dev/null +++ b/insertsort.c @@ -0,0 +1,38 @@ +#include +#include +#include + +#include "util.h" + +typedef int T; + +void +insertsort(T a[], size_t n) +{ + for ( size_t i = 1; i < n; ++i ) { + size_t j = i; + const T value = a[i]; + + for ( ; j > 0 && a[j - 1] > value; --j ) + a[j] = a[j - 1]; + + a[j] = value; + } +} + +int +main(void) +{ + T a[10]; + + srand(time(NULL)); + for ( size_t i = 0; i != NELEM(a); ++i ) + a[i] = rand() % 100; + + insertsort(a, NELEM(a)); + + for ( size_t i = 0; i != NELEM(a); ++i ) + printf("%d ", a[i]); + putchar('\n'); + return EXIT_SUCCESS; +} -- cgit v1.3