스위프트: Array.count 대 String.count

Feb 02 2023
많은 개발자들은 Array.count와 String을 생각합니다.
Unsplash의 Siora Photography 사진

많은 개발자들은 Array.count 와 String.count 가 같다고 생각합니다. 동일한 목적(시퀀스 길이를 구하는 것)으로 사용하더라도 길이를 구하는 방법에 따라 큰 차이가 난다.

배열은 RandomAccessCollection 을 준수합니다 . 인덱스 의 끝에 액세스하려면 O(1)이 필요합니다. 따라서 Array.count 의 시간복잡도 는 O(1)

문자열이 RandomAccessCollection 을 준수하지 않습니다 . 문자 수를 세는 데는 O(n)이 필요하고 n은 String 의 문자 수입니다 . 따라서 String.count 의 시간 복잡도는 O(n)입니다.

실험하자!

Array.count의 경우

배열 크기가 증가함에 따라 런타임이 매우 안정적입니다.

String.Count의 경우

문자열 크기가 커지면 런타임이 많이 늘어납니다.

미디엄 회원이 되어 더 많은 멋진 이야기를 읽고 경력을 쌓으세요.

더 많은 프리미엄 콘텐츠를 보려면 다음으로 이동하세요.