요약

  • 배열에서 가장 작은 요소를 찾아 맨 앞 요소와 교환하며 정렬하는 알고리즘이다.

내용

원리

  • 배열에서 가장 작은 요소를 찾아 맨 앞 요소와 교환하며 정렬한다.

시간 복잡도

  • 모두 O(n^2)

장점

단점

  • 데이터 양이 많아질수록 비효율적입니다.

구현체

package main
 
import "fmt"
 
func selectionSort(arr []int) {
	n := len(arr)
	for i := 0; i < n-1; i++ {
		minIdx := i
		for j := i + 1; j < n; j++ {
			if arr[j] < arr[minIdx] {
				minIdx = j
			}
		}
		arr[i], arr[minIdx] = arr[minIdx], arr[i]
	}
}
 
func main() {
	arr := []int{3, 2, 5, 4, 1}
 
	fmt.Println("Before selectionSort array: ", arr)
 
	selectionSort(arr)
	fmt.Println("After selectionSort array: ", arr)
}

참고