Алгоритм сортировки выбором — это простой алгоритм сортировки. Алгоритм сортировки выбором — это алгоритм, основанный на сравнении на месте, в котором список делится на две части: отсортированную часть слева и несортированную часть справа. Первоначально отсортированная часть пуста, а несортированная часть — это весь список.

Алгоритм поддерживает два подмассива в заданном массиве.

  • Подмассив, который уже отсортирован.
  • Оставшийся подмассив был несортированным.

Схема алгоритма сортировки выбором

Этапы алгоритма:

  • Установите минимальное значение (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]

Код оплаты на нескольких языках

Если эта статья окажется вам полезной, вы также можете посетить мой блог.
Клуб программистов-гиков

если кому-то нужна помощь, пожалуйста, не стесняйтесь оставлять комментарии.

Спасибо за прочтение :)