commit 04bd0c99cbc1a8aa58cdc7cd9b084493376806b3 Author: joachimschmidt557 Date: Thu May 2 14:47:04 2019 +0200 Add gnome sort diff --git a/gnome-sort.c b/gnome-sort.c new file mode 100644 index 0000000..0bf4fe6 --- /dev/null +++ b/gnome-sort.c @@ -0,0 +1,32 @@ +#include + +void swap(int a, int b) { + int t = a; + a = b; + b = t; +} + +void gnome_sort(int array[], int n) { + int i = 0; + while (i < n) { + if (array[i] > array[i+1]) { + //swap(array[i+1], array[i]); + int t = array[i]; + array[i] = array[i+1]; + array[i+1] = t; + if (i > 0) i--; + } + else i++; + } +} + +void print_array(int array[], int n) { + for (int i = 0; i < n; i++) + printf("%d ", array[i]); +} + +void main() { + int array[] = {1, 3, 6, 2, 4, 73, 23, 61, 32, 64, 11, 32, 3, 2}; + gnome_sort(array, 13); + print_array(array, 13); +}