[Swift] reversed() vs reverse()

Youngwoo Lee·2022년 3월 29일
0

Algorithm

목록 보기
9/9
post-thumbnail

들어가며

알고리즘 문제를 풀며, 사소하게 알게되는 것들을 모두 기록해보자...

reversed() vs reverse()

Array를 사용하다보면, 배열을 뒤집기 위해서 위 메서드들을 사용하는 경우들이 있다. 공식문서로 해당 메서드들을 읽다보니 시간복잡도가 다른 것을 알게되어서 기록하기로 하였다.

reverse 의 경우 위와 같이 O(n)의 시간복잡도가 발생하는 것을 알 수 있다. mutating func 이다보니 배열에서 각각의 위치들을 변경하는 동작을 수행하기에 시간복잡도가 O(n)이 되는 것으로 보인다.

하지만, reverse 와 다르게 reversed 메서드의 경우는 시간복잡도가 O(1)에 불과하다. non-mutating func 이다보니 선회하면서 모든 element들의 위치를 변경시켜주는 동작을 하는 것이기 때문이다.


이전에는 시간복잡도를 고려하면서 풀기보다는 구현에만 초점을 맞췄는데, 조금씩 성능적인 부분들에 대해서 고민들을 해야겠다.

profile
iOS Developer Student

0개의 댓글