[go] Sort 패키지의 기본 정렬 기능

Go 언어에서는 sort 패키지를 사용하여 슬라이스(slice)나 사용자 정의 타입에 대한 정렬 기능을 제공합니다. sort 패키지에는 다양한 정렬 알고리즘을 활용하여 정렬할 수 있는 함수들이 제공됩니다.

본 블로그 글에서는 Go 언어의 sort 패키지를 사용하여 기본적인 정렬 기능을 살펴보겠습니다.

슬라이스 정렬

가장 기본적인 형태의 정렬은 슬라이스(slice)에 포함된 요소들을 정렬하는 것입니다. Go 언어의 sort 패키지를 사용하면 다음과 같이 간단하게 슬라이스를 정렬할 수 있습니다.

package main

import (
	"fmt"
	"sort"
)

func main() {
	nums := []int{4, 2, 5, 1, 3}
	sort.Ints(nums)
	fmt.Println(nums) // 출력: [1 2 3 4 5]
}

위 예제에서 sort.Ints 함수를 사용하여 정수형 슬라이스를 오름차순으로 정렬하였습니다.

사용자 정의 타입 정렬

사용자가 정의한 타입에 대해서도 sort 패키지를 사용하여 정렬할 수 있습니다. 다음은 사용자가 정의한 Person 구조체를 나이에 따라 정렬하는 예제입니다.

package main

import (
	"fmt"
	"sort"
)

type Person struct {
	Name string
	Age  int
}

type ByAge []Person

func (p ByAge) Len() int           { return len(p) }
func (p ByAge) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
func (p ByAge) Less(i, j int) bool { return p[i].Age < p[j].Age }

func main() {
	people := []Person{
		{"Alice", 25},
		{"Bob", 20},
		{"Eve", 30},
	}

	sort.Sort(ByAge(people))
	fmt.Println(people) // 출력: [{Bob 20} {Alice 25} {Eve 30}]
}

위 예제에서 ByAge 타입에 대해 Len, Swap, Less 메서드를 구현하여 사용자 정의 타입을 정렬할 수 있도록 하였습니다.

요약

Go 언어의 sort 패키지를 사용하면 슬라이스나 사용자 정의 타입에 대한 다양한 정렬 기능을 간단하게 구현할 수 있습니다. 이러한 기능을 효과적으로 활용하여 프로그램을 작성할 때, 효율적이고 간결한 코드를 작성할 수 있습니다.

더 자세한 내용은 Go 언어 공식 문서의 Sort 패키지를 참고하실 수 있습니다.

이상으로 Go 언어의 sort 패키지를 활용한 기본 정렬 기능에 대한 내용을 알아보았습니다. 감사합니다.