Skip to content

Реализация BubbleSort на Go

  1. Создай папку по следующему пути module3/algo.

  2. Создай файл bubblesort.go со следующим содержимым:

Пока наша функция ничего не сортирует, в первую очередь, напишем тесты к ней.

  1. Выбираем пункт Generate:

  1. Далее выбираем Test for function:

  1. Создадим тест со следующими параметрами:

  1. Запустим тест. Наш тест упадет с ошибкой:

  1. Напишем первую версию сортировки:

  1. Напишем к данной версии бенчмарк:

В нашем решении есть упущение — мы проходимся по всем элементам, даже по отсортированной части слайса. Также нужно убрать проверку последнего элемента.

  1. Давай исправим это:

Запустим наш тест и бенчмарк:

Как видим, мы ускорили нашу реализацию — теперь на одну операцию уходит 56.75 вместо 99.67. Достойный результат!

В следующей главе рассмотрим еще 2 кейса, когда слайс частично или уже полностью отсортирован.