parent
aa919129f2
commit
89b7afb0cf
|
@ -47,3 +47,5 @@
|
||||||
### Golang
|
### Golang
|
||||||
1. [Insertion Sort](go/insertion-sort.go)
|
1. [Insertion Sort](go/insertion-sort.go)
|
||||||
2. [Quick Sort](go/quick-sort.go)
|
2. [Quick Sort](go/quick-sort.go)
|
||||||
|
3. [Bubble Sort](go/bubble-sort.go)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
Loading…
Reference in New Issue