From e15cfb29b12cc6d351bcb82c43ca4deb9ff71d79 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 10 Apr 2018 11:32:49 +0300 Subject: [PATCH] Added GnomeSort --- Sorts/src/sort/GnomeSort.java | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Sorts/src/sort/GnomeSort.java diff --git a/Sorts/src/sort/GnomeSort.java b/Sorts/src/sort/GnomeSort.java new file mode 100644 index 000000000..14af67c65 --- /dev/null +++ b/Sorts/src/sort/GnomeSort.java @@ -0,0 +1,44 @@ +package sort; + +import static sort.SortUtils.*; + +/** + * Implementation of gnome sort + * + * @author Podshivalov Nikita (https://github.com/nikitap492) + * @since 2018-04-10 + * + **/ +public class GnomeSort implements SortAlgorithm{ + + @Override + public > T[] sort(T[] arr) { + int i = 1; + int j = 2; + while (i < arr.length){ + if ( less(arr[i - 1], arr[i]) ) i = j++; + else { + swap(arr, i - 1, i); + if (--i == 0){ i = j++; } + } + } + + return null; + } + + public static void main(String[] args) { + Integer[] integers = { 4, 23, 6, 78, 1, 26, 11, 23 , 0, -6, 3, 54, 231, 9, 12 }; + String[] strings = {"c", "a", "e", "b","d", "dd","da","zz", "AA", "aa","aB","Hb", "Z"}; + GnomeSort gnomeSort = new GnomeSort(); + + gnomeSort.sort(integers); + gnomeSort.sort(strings); + + System.out.println("After sort : "); + print(integers); + print(strings); + + + } + +}