퀵 정렬은 pivot을 기준으로 큰 숫자와 작은 숫자를 나누어줍니다. 코드를 살펴봅시다. pivot을 array의 중간인 array.count / 2로 잡아주고 less는 pivot보다 작은 것 equal은 pivot이랑 같은 것 greater은 pivot보다 큰 것들로 나누어줍니다. 각 less, equal, greater은 스위프트의 고차함수filter를 사용해줍니다. 간단하게 나뉘는 흐름을 살펴봅니다. array의 count가 1보다 작으면 return해주고 less, equal, greater을 분리하면 최종적으로 정렬된 배열을 얻을 수 있습니다. 단점은 피봇 값에 따라 편향되게 분할될 가능성도 있습니다. 예를들어 이미 정렬할 데이터가 정렬되어 있거나 역으로 정렬되어 있는경우 피봇이 한쪽으로 치우..
선택 정렬은 가장 작은 값을 찾아서 앞으로 보내주는 정렬입니다. 첫 번째 원소를 두 번째 원소부터 마지막 원소까지 차례대로 비교하여 가장 작은 값을 찾아 첫 번째에 놓고, 두 번째 원소를 세 번째 원소부터 마지막 원소와 차례대로 비교하여 그중 가장 작은 값을 찾아 두번째 위치에 놓는 과정을 반복합니다. + 선택정렬을 코드로 작성할 때는 가장 작은 값을 찾기 위한 min값이 있어야합니다. 코드를 살펴봅시다. arr는 우리가 정렬해야 할 배열이며, 1부터 7까지 정렬되지 않은 상태로 존재합니다. arr의 크기는 7이고 인덱스는 0부터 6까지 입니다. (external for loop) 외부에 있는 for 루프는 최솟값이 놓일 인덱스를 위해 사용합니다. (internal for loop) 내부에 있는 for ..
- Total
- Today
- Yesterday
- stanford SwiftUI
- ReactiveX
- objc
- 책 후기
- 문자열
- 딥러닝
- swiftUI
- Xcode
- 스위프트
- RX
- SWIFT
- 스위프트UI
- string
- iOS SwiftUI
- ARC
- 책 추천
- leetcode
- wwdc
- Deep learning
- 독서
- 알고리즘
- ios
- objective-c
- 애니메이션
- rxswift
- 머신러닝
- 책
- swift5
- Animation
- 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 |