From 8f4f8cdd7a6670885794e74b26fe784950674a21 Mon Sep 17 00:00:00 2001 From: beqakd Date: Fri, 5 Jun 2020 18:09:55 +0400 Subject: [PATCH] change name as in contribute.md --- sorting/gnome_sort.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 sorting/gnome_sort.cpp diff --git a/sorting/gnome_sort.cpp b/sorting/gnome_sort.cpp new file mode 100644 index 000000000..b7a57e923 --- /dev/null +++ b/sorting/gnome_sort.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; + +void gnomesort(int arr[], int size) { + // few easy cases + if (size <= 1) return; + + int index = 0; // initialize some variables. + while (index < size) { + // check for swap + if ((index == 0) || (arr[index] >= arr[index - 1])) { + index++; + } else { + swap(arr[index], arr[index - 1]); // swap + index--; + } + } +} +// Our main function +int main() { + int arr[] = {-2, -10, 100, 35, 34, 99}; + int size = sizeof(arr) / sizeof(arr[0]); + + gnomesort(arr, size); + + for (int i = 0; i < size; i++) printf("%d ", arr[i]); + + return 0; +}