GO · 컬렉션
정렬 (sort & slices)
slices.Sort와 slices.SortFunc로 슬라이스를 정렬합니다. Go 1.21+의 제네릭 기반 정렬입니다.
컬렉션중급sortslicesbinary-searchcmp
핵심 설명
slices.Sort와 slices.SortFunc로 슬라이스를 정렬합니다. Go 1.21+의 제네릭 기반 정렬입니다.
Go code
package main
import (
"cmp"
"fmt"
"slices"
)
type Student struct {
Name string
Score int
}
func main() {
// 기본 정렬
nums := []int{5, 2, 8, 1, 9}
slices.Sort(nums)
fmt.Println(nums) // [1 2 5 8 9]
// 커스텀 정렬
students := []Student{
{"Alice", 90}, {"Bob", 85}, {"Charlie", 95},
}
slices.SortFunc(students, func(a, b Student) int {
return cmp.Compare(b.Score, a.Score) // 내림차순
})
for _, s := range students {
fmt.Printf("%s: %d\n", s.Name, s.Score)
}
// 안정 정렬
slices.SortStableFunc(students, func(a, b Student) int {
return cmp.Compare(a.Name, b.Name)
})
// 이진 검색
idx, found := slices.BinarySearch(nums, 5)
fmt.Printf("5 at index %d, found=%t\n", idx, found)
}학습 팁
slices.SortFunc의 비교 함수는 음수(ab)를 반환합니다. cmp.Compare를 활용하세요.
주의할 점
slices.Sort는 불안정 정렬입니다. 동일한 키의 원래 순서가 중요하면 slices.SortStableFunc를 사용하세요.
자주 묻는 질문
정렬 (sort & slices)란 무엇인가요?
slices.Sort 와 slices.SortFunc 로 슬라이스를 정렬합니다. Go 1.21+의 제네릭 기반 정렬입니다.
정렬 (sort & slices) 학습 시 주의할 점은 무엇인가요?
slices.Sort 는 불안정 정렬입니다. 동일한 키의 원래 순서가 중요하면 slices.SortStableFunc 를 사용하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.