From f5d6daaf62cf057e0287baecae93062cf7b4a373 Mon Sep 17 00:00:00 2001 From: klaywert Date: Sun, 25 Oct 2020 19:58:48 -0300 Subject: [PATCH] Adding odd even sort algorithm --- Java/Odd_Even_Sort.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Java/Odd_Even_Sort.java diff --git a/Java/Odd_Even_Sort.java b/Java/Odd_Even_Sort.java new file mode 100644 index 0000000..35cc982 --- /dev/null +++ b/Java/Odd_Even_Sort.java @@ -0,0 +1,29 @@ +public class OddEvenSort { + public static > void sort(T[] array) { + boolean sorted = false; + while (!sorted) { + sorted = innerSort(array, 1); + sorted = innerSort(array, 0) && sorted; + } + } + + private static > boolean innerSort(T[] array, Integer i) { + boolean sorted = true; + for (; i < array.length - 1; i += 2) + { + if (array[i].compareTo(array[i + 1]) > 0) + { + swap(array, i, i + 1); + sorted = false; + } + } + return sorted; + } + + private static > void swap( + T[] array, int a, int b) { + T temp = array[a]; + array[a] = array[b]; + array[b] = temp; + } +} \ No newline at end of file