From b0b710c5a760ecf6aaa0629b962f5fd7f07de177 Mon Sep 17 00:00:00 2001 From: Ryan Maleki Date: Sun, 18 Aug 2024 22:19:47 -0700 Subject: [PATCH] more efficient buble sort --- array/bubble_sort.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/array/bubble_sort.go b/array/bubble_sort.go index 00666ae..5dd2d9c 100644 --- a/array/bubble_sort.go +++ b/array/bubble_sort.go @@ -2,10 +2,13 @@ package array // BubbleSort solves the problem in O(n^2) time and O(1) space. func BubbleSort(input []int) { - for i := range input { - for j := range input { - if input[i] < input[j] { - input[i], input[j] = input[j], input[i] + swapped := true + for swapped { + swapped = false + for i := 1; i < len(input); i++ { + if input[i] < input[i-1] { + input[i], input[i-1] = input[i-1], input[i] + swapped = true } } }