From f94f903987b167b0bc641aeabe20c708a0cc0a6f Mon Sep 17 00:00:00 2001 From: krolyxon Date: Thu, 31 Aug 2023 08:39:20 +0530 Subject: Initial Commit --- src/sort.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/sort.c (limited to 'src/sort.c') diff --git a/src/sort.c b/src/sort.c new file mode 100644 index 0000000..6ea4b26 --- /dev/null +++ b/src/sort.c @@ -0,0 +1,41 @@ +#include "utils.h" +#include +void bubblesort(int a[], int n) { + int comparisons = 0; + for (int i = 0; i < n; i++) { + for (int j = 1; j < n - i; j++) { + comparisons++; + if (a[j - 1] > a[j]) { + swap(a, j, j - 1); + } + } + printarr(a, n); + printf("\n"); + } +} + +void selectionsort(int a[], int n) { + for (int i = 0; i < n; i++) { + int small = i; + for (int j = i; j < n; j++) { + if (a[j] < a[small]) { + small = j; + } + } + swap(a, i, small); + printarr(a, n); + printf("\n"); + } +} + +void insertionsort(int a[], int n) { + for (int i = 1; i < n; i++) { + int j = i; + while (j > 0 && a[j - 1] > a[j]) { + swap(a, j, j - 1); + j--; + } + printarr(a, n); + printf("\n"); + } +} -- cgit v1.2.3