Реализация BubbleSort на Go
-
Создай папку по следующему пути module3/algo.
-
Создай файл bubblesort.go со следующим содержимым:

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

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

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

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

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

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

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

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


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