[go] Sort 패키지의 가변 길이 데이터 정렬
Go 언어(또는 Golang)는 가변 길이 데이터를 정렬하는 데 사용할 수 있는 풍부한 표준 라이브러리를 제공합니다. 이 포스트에서는 Go 언어에서 가변 길이 데이터를 정렬하는 방법을 알아보겠습니다.
1. Sort 패키지 소개
Go 언어의 sort
패키지는 슬라이스나 사용자 정의 컬렉션을 정렬하는 데 필요한 함수와 인터페이스를 제공합니다.
2. 사용 예시
다음은 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]
}
3. 사용자 정의 타입의 정렬
사용자 정의 타입을 정렬할 때는 해당 타입에 sort.Interface
인터페이스를 구현해야 합니다. 아래는 사용자 정의 타입을 정렬하는 예시입니다.
package main
import (
"fmt"
"sort"
)
// Person 구조체 선언
type Person struct {
Name string
Age int
}
// Person 타입을 정렬하기 위한 인터페이스 구현
type ByAge []Person
func (p ByAge) Len() int { return len(p) }
func (p ByAge) Less(i, j int) bool { return p[i].Age < p[j].Age }
func (p ByAge) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
func main() {
// Person 타입 슬라이스
people := []Person{
{"Alice", 25},
{"Bob", 30},
{"Eve", 20},
}
// 사용자 정의 타입 정렬
sort.Sort(ByAge(people))
// 정렬된 결과 출력
fmt.Println(people)
}
위의 예시에서 ByAge
타입은 sort.Interface
를 구현하여 sort.Sort(ByAge(people))
를 통해 사용자 정의 타입을 정렬하고 있습니다.
4. 결론
이러한 간단한 예시를 통해, Go 언어에서 가변 길이 데이터를 정렬하는 방법을 알아보았습니다. sort
패키지를 이용하여 슬라이스나 사용자 정의 타입을 정렬할 수 있으며, 이를 응용하여 다양한 정렬 알고리즘을 구현할 수 있습니다. Go 언어로 작업할 때 가변 길이 데이터를 처리해야 할 경우, sort
패키지를 유용하게 활용할 수 있습니다.