Learn the coding skills for your next job

Writing Bubble Sort in Go from Scratch

Bubble sort is named for the way elements “bubble up” to the top of the list. Bubble sort repeatedly steps through a slice and compares adjacent elements, swapping them if they are out of order. It continues to loop over the slice until the whole list is completely sorted.

Learn algorithms, pass interviews

We keep hearing from employers that they can’t find developers who know their way around basic algorithms and data structures. Understanding how to keep applications fast at scale will set you apart in this job market, and our “Big-O Algorithms” track of courses will give you exactly what you need.

Full example of the bubble sort algorithm

func bubbleSort(input []int) []int {     swapped := true     for swapped {         swapped = false         for i := 1; i < len(input); i++ {             if input[i-1] > input[i] {                 input[i], input[i-1] = input[i-1], input[i]                 swapped = true             }         }     }     return input }
Code language: Go (go)

Using the algorithm in code

func main() { unsorted := []int{10, 6, 2, 1, 5, 8, 3, 4, 7, 9}     sorted := bubbleSort(unsortedInput) // sorted = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }
Code language: Go (go)

Why use bubble sort?

Bubble sort is famous for how easy it is to write. It’s one of the slowest sorting algorithms, but can be useful for a quick script or when the amount of data to be sorted is guaranteed to be small. If you need a sorting algorithm to use in a production system, I recommend not reinventing the wheel and using the built-in sort.Sort method.

Bubble sort Big-O complexity

While bubble sort is considered fast and easy to write, it’s actually one of the slowest sorting algorithms out there. Because bubble sort needs to move through the entire list for each element in the list, which in code is a nested for-loop, bubble sort has a complexity of O(n^2).

Trying to find your next programming job?

If you are a self-taught developer having trouble finding your first programming job, we've got your back! We have the learning resources and tight-knit dev community that you need to land the coding job you've been looking for. To get started, create a free account and join our Discord community.

Have questions or feedback?

If we've made a mistake in the article, please let us know so we can get it corrected!