개발자
문득 알고리즘 풀다가 아래의 게시글을 보았습니다 https://jusths.tistory.com/217 역정렬 할때 게시글처럼 진행하면 속도가 빠르다고 하는데 왜 그럴까요? 리터럴 함수로 호출하는게 빠르다고 생각했었습니다만....
답변 1
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 09월 20일
Go 언어의 `sort.Sort(sort.Reverse(sort.IntSlice(a)))` 함수는 지정된 슬라이스를 역순으로 효율적으로 정렬하는데, 이는 내부 알고리즘에 어떤 최적화가 있기 때문입니다. `sort.Sort()`함수는 내부적으로 '퀵소트' 알고리즘을 구현합니다. 이 알고리즘은 평균적으로 O(n log n)의 시간 복잡도를 가지며 일반적인 경우에서 아주 빠른 성능을 보여줍니다. `sort.Reverse()` 함수는 sort.Interface를 구현한 타입을 받아들여 그 순서를 바꾼 새로운 Interface를 반환합니다. 이것이 가능한 이유는 Go의 인터페이스 시스템과 '구성 가능한 동작' 개념 때문입니다. 그리고 리터럴 함수(익명 함수)로 호출하는 것보다 Go가 제공하는 내장 sort와 reverse 메서드를 사용하면 추가적인 오버헤드 없이 직접 처리되므로 속도가 빠릅니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!