Search
Duplicate

sort()와 sorted() 함수의 차이

생성일
2024/02/21 03:45
태그
Grammar

 sort()와 sorted() 함수의 차이

sort()

sort()는 기본적으로 ‘원본 배열’을 가지고 오름차순 정렬을 해준다.
물론 내림차순으로도 정렬이 가능하다.
sort() // 오름차순(기본) sort(by: >) // 내림차순
Swift
복사
예시)
var arr = [2, 24, 45, 36, 9] arr.sort() // [2, 9, 24, 36, 45] arr.sort(by: >) // [45, 36, 24, 9, 2]
Swift
복사

sorted()

sorted는 sort와 다르게 원본 배열은 건드리지 않고, ‘사본’을 만들어서 오름차순으로 정렬한 후 정렬된 요소를 반환해주는 방식이다.
= arr.sorted() // arr 오름차순 정렬 = arr.sorted(by: >) // arr 내림차순 정렬
Swift
복사
에시)
var arr = [2, 24, 45, 36, 9] var sortedArr = arr.sorted() // 기본 오름차순 정렬 print(arr) // [2, 24, 45, 36, 9] print(sortedArr) // [2, 9, 24, 36, 45] var sortedArrDown = arr.sorted(by: >) // 내림차순 정렬 print(arr) // [2, 24, 45, 36, 9] print(sortedArrDown) // [45, 36, 24, 9, 2]
Swift
복사

 sort() & sorted() 차이점, 주의할 점

sort() 함수는 ‘원본 배열’ 자체의 순서를 변경한다.
그렇다면, 기존의 배열 순서가 중요한 경우에 sort() 함수를 사용한다면? → 문제,,,,,
원본 배열의 순서가 중요한 상황인데, sort() 함수를 사용한다면 원본 배열의 순서가 뒤엉킨다,,
그러니 기존의 배열 순서가 중요한 경우에는 sort() 함수를 사용하는 것을 지양해야한다!
또한, sorted() 함수는 원본 배열의 ‘사본’을 만들어서 사용한다.
값을 복제하여 사용하는 만큼 메모리의 사용량 또한 2배! 거기다가 또 sorted()를 사용하면 그만큼 메모리가 더 늘어날것이다.
그러니 큰 사이즈의 배열에 사용하면 그만큼 메모리가 많이 사용되므로 주의해야한다.