Алгоритм сортировки выбором — это простой алгоритм сортировки. Алгоритм сортировки выбором — это алгоритм, основанный на сравнении на месте, в котором список делится на две части: отсортированную часть слева и несортированную часть справа. Первоначально отсортированная часть пуста, а несортированная часть — это весь список.
Алгоритм поддерживает два подмассива в заданном массиве.
- Подмассив, который уже отсортирован.
- Оставшийся подмассив был несортированным.
Схема алгоритма сортировки выбором
Этапы алгоритма:
- Установите минимальное значение (min_index) в положение 0.
- Пройдитесь по массиву, чтобы найти минимальный элемент в массиве.
- Если найден какой-либо элемент меньше (min_index), поменяйте местами оба значения.
- Увеличьте (min_index), чтобы указать на следующий элемент.
- Повторяйте, пока массив не будет отсортирован.
Реализация алгоритма в Golang
package main
import (
"fmt"
)
func selectionSort(arr []int) {
var i, j, min_index int
for i = 0; i < len(arr)-1; i++ {
min_index = i
for j = i + 1; j < len(arr); j++ {
if arr[j] < arr[min_index] {
min_index = j
}
}
// if min_index is not equals to i then swap the indexes
if min_index != i {
arr[i], arr[min_index] = arr[min_index], arr[i]
}
}
}
func main() {
arr := []int{12, 23, 34, 43, 4, 34, 24, 3, 53, 25454, 64}
fmt.Println("before selection sort", arr)
selectionSort(arr)
fmt.Println("after selection sort", arr)
}
Вывод:
до сортировки выбором [12 23 34 43 4 34 24 3 53 25454 64]
после сортировки выбором [3 4 12 23 24 34 34 43 53 64 25454]
Код оплаты на нескольких языках
Если эта статья окажется вам полезной, вы также можете посетить мой блог.
Клуб программистов-гиков
если кому-то нужна помощь, пожалуйста, не стесняйтесь оставлять комментарии.
Спасибо за прочтение :)