diff --git a/src/main/java/algorithm/BubbleSortSnippet.java b/src/main/java/algorithm/BubbleSortSnippet.java index cac23195..50f81e46 100644 --- a/src/main/java/algorithm/BubbleSortSnippet.java +++ b/src/main/java/algorithm/BubbleSortSnippet.java @@ -35,16 +35,22 @@ public class BubbleSortSnippet { * @param arr array to sort */ public static void bubbleSort(int[] arr) { - var lastIndex = arr.length - 1; + int lastIndex = arr.length - 1; + boolean swapped = true; - for (var j = 0; j < lastIndex; j++) { - for (var i = 0; i < lastIndex - j; i++) { - if (arr[i] > arr[i + 1]) { - var tmp = arr[i]; - arr[i] = arr[i + 1]; - arr[i + 1] = tmp; + while (swapped) { + swapped = false; + + for (int i = 0; i < lastIndex; i++) { + if (arr[i] > arr[i + 1]) { + int temp = arr[i]; + arr[i] = arr[i + 1]; + arr[i + 1] = temp; + swapped = true; + } } - } + + lastIndex--; } } }