bubble-sort.go added (#117)

* bubble-sort.go added

* Updated bubble sort algorithm
pull/122/head
UnleashMe69 2021-03-27 18:15:52 +01:00 committed by GitHub
parent aa919129f2
commit 89b7afb0cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 0 deletions

View File

@ -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)

View File

@ -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)
}