어떤 분이 초기화되지 않은 버퍼에 액세스 할 수 있는 배열 초기화 프로그램을 만든 포스트를 보다가 작성하게 되었어요. forums.swift.org/t/array-initializer-with-access-to-uninitialized-buffer/13689 스위프트에서 배열 크기 늘리기 // Grwoing the size an array 스위프트에서 배열은 내용을 보관하기 위해 특정 사이즈만큼의 메모리를 예약해둡니다. 배열에 element를 추가하고 해당 배열이 예약된 용량을 초과하기 시작하면, 배열은 더 큰 메모리 영역을 할당하고 해당 element를 새 저장 공간에 복사합니다. 이때 새 저장소의 크기는 이전 저장소 크기의 배수입니다. 이렇게 배수로 증가시키는 것은 상수 시간으로 element가 추가..
reversed()의 시간복잡도가 O(1)이라니 . . . 알고리즘 문제 중 역순으로 출력하는 문제가 있었는데 저는 그럴 때마다 Array의 reversed()아니면 reverse()를 사용했습니다. 굳이 reverse도 있는데 왜 reversed를 사용하는 거야 . . 라고 생각했고 찾아보았습니다. 뭐가 달라 !!!!!! 결과적으로 시간 복잡도에서 차이가 났습니다. 모르면 일단 공식문서를 살펴봅니다. reverse() 설명으로 그 자리(in place)에서 element를 역순으로 돌립니다. 함수는 mutating func reverse()로 정의되어 있습니다. 그 공간에서 역순으로 돌리기 때문에 뭐 새롭게 생기는 배열도 없습니다. 새로운 배열을 리턴하지 않습니다. 그리고 시간 복잡도는 O(n) .. ..
Swfit의 Shuffle( ) "Use the shuffle() method to randomly reorder the elements of an array."shuffle()은 배열의 순서를 랜덤화 하는 함수입니다. 시간 복잡도는 O(n)이네요. WWDC2018 Generic을보다가 shuffle()이 어떻게 구현되었는지 언급이 되길래 정리하고자 합니다. 사용된 fisher yates shuffle 알고리즘은 오래된 알고리즘입니다. 위에서 shuffle()은 배열을 랜덤화 할때 사용하는 함수라고 했으니array.shuffle()을 해주고 print를 찍어보면 잘 섞여서 나오는걸 확인할 수 있습니다.위 print문이 어떻게 찍혔는지 과정을 살펴봅시다.먼저 컬렉션의 첫 번째 요소에 대한 인덱스부터 시작합..
- Total
- Today
- Yesterday
- 책
- swift5
- rxswift
- ios
- ReactiveX
- Animation
- Xcode
- wwdc
- iOS SwiftUI
- 스위프트
- 알고리즘
- 독서
- 책 추천
- 스위프트UI
- 문자열
- objective-c
- RX
- swiftUI
- leetcode
- stanford SwiftUI
- ARC
- 머신러닝
- 애니메이션
- 딥러닝
- Deep learning
- SWIFT
- objc
- 책 후기
- string
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |