aboutsummaryrefslogtreecommitdiff
path: root/src/sort.c
diff options
context:
space:
mode:
authorkrolyxon <krolyxon@tutanota.com>2023-08-31 08:39:20 +0530
committerkrolyxon <krolyxon@tutanota.com>2023-08-31 08:39:20 +0530
commitf94f903987b167b0bc641aeabe20c708a0cc0a6f (patch)
tree50f88d391d3628d8d3367c63df85d595db8f77ba /src/sort.c
Initial Commit
Diffstat (limited to 'src/sort.c')
-rw-r--r--src/sort.c41
1 files changed, 41 insertions, 0 deletions
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 <stdio.h>
+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");
+ }
+}