diff --git a/src/main/java/com/thealgorithms/sorts/SwapSort.java b/src/main/java/com/thealgorithms/sorts/SwapSort.java index e0fa7087a49e..fe3597c0e2b4 100644 --- a/src/main/java/com/thealgorithms/sorts/SwapSort.java +++ b/src/main/java/com/thealgorithms/sorts/SwapSort.java @@ -17,8 +17,8 @@ public > T[] sort(T[] array) { while (index < len - 1) { int amountSmallerElements = this.getSmallerElementCount(array, index); - if (amountSmallerElements > 0 && index != amountSmallerElements) { - SortUtils.swap(array, index, amountSmallerElements); + if (amountSmallerElements > 0) { + SortUtils.swap(array, index, index + amountSmallerElements); } else { index++; } @@ -29,7 +29,7 @@ public > T[] sort(T[] array) { private > int getSmallerElementCount(T[] array, int index) { int counter = 0; - for (int i = 0; i < array.length; i++) { + for (int i = index + 1; i < array.length; i++) { if (SortUtils.less(array[i], array[index])) { counter++; } @@ -37,36 +37,4 @@ private > int getSmallerElementCount(T[] array, int inde return counter; } - - public static void main(String[] args) { - // ==== Int ======= - Integer[] a = {3, 7, 45, 1, 33, 5, 2, 9}; - System.out.print("unsorted: "); - SortUtils.print(a); - System.out.println(); - - new SwapSort().sort(a); - System.out.print("sorted: "); - SortUtils.print(a); - System.out.println(); - - // ==== String ======= - String[] b = { - "banana", - "berry", - "orange", - "grape", - "peach", - "cherry", - "apple", - "pineapple", - }; - System.out.print("unsorted: "); - SortUtils.print(b); - System.out.println(); - - new SwapSort().sort(b); - System.out.print("sorted: "); - SortUtils.print(b); - } } diff --git a/src/test/java/com/thealgorithms/sorts/SwapSortTest.java b/src/test/java/com/thealgorithms/sorts/SwapSortTest.java new file mode 100644 index 000000000000..c1638a385940 --- /dev/null +++ b/src/test/java/com/thealgorithms/sorts/SwapSortTest.java @@ -0,0 +1,8 @@ +package com.thealgorithms.sorts; + +public class SwapSortTest extends SortingAlgorithmTest { + @Override + SortAlgorithm getSortAlgorithm() { + return new SwapSort(); + } +}