Skip to content

Commit

Permalink
bubble-sort.go added (MakeContributions#117)
Browse files Browse the repository at this point in the history
* bubble-sort.go added

* Updated bubble sort algorithm
  • Loading branch information
UnleashMe69 authored Mar 27, 2021
1 parent aa91912 commit 89b7afb
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sorting/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,5 @@
### Golang
1. [Insertion Sort](go/insertion-sort.go)
2. [Quick Sort](go/quick-sort.go)
3. [Bubble Sort](go/bubble-sort.go)

28 changes: 28 additions & 0 deletions sorting/go/bubble-sort.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
Bubble sort is a recursive algorithm based on swapping 2 values closest to each other: k and k+1
We start by checking the first two values of the array, and we swap them if the first value is bigger than the second one.
Then we recursively swap the second value with the third, if needed and so on until the array is sorted.
Average Time Complexity: O(n^2))
*/

package main

import (
"fmt"
)

func bubbleSort(sliceInt []int, n int) {
for k := 0; k < n-1; k++ {
if sliceInt[k] > sliceInt[k+1] {
// We swaps the value if sliceInt[k] > sliceInt[k+1]
sliceInt[k], sliceInt[k+1] = sliceInt[k+1], sliceInt[k]
bubbleSort(sliceInt, n)
}
}
}

func main() {
sliceInt := []int{1, 2, -1, 0, 534, -100, 9, 53, 203}
bubbleSort(sliceInt, len(sliceInt))
fmt.Println(sliceInt)
}

0 comments on commit 89b7afb

Please sign in to comment.