728x90
오늘은 Insertion Sort 를 Swift 로 간단하게 구현해보도록 하겠습니다.
시간복잡도는 O(n^2) 으로 최적화된 정렬은 아닙니다만, 가장 간단하게 구현할 수 있는 정렬 중 하나라고 할 수 있겠습니다.
func insertionSort(_ arr: [Int]) -> [Int] { // O(n^2)
var a = arr
for i in 1..<a.count {
var j = i
while j > 0 && a[j] < a[j - 1]{
a.swapAt(j-1, j)
j -= 1
}
}
return a
}
Swift 문법을 통해서는 아래처럼 조금 더 간편하게 변경할 수 있습니다.
func insertionSort(_ arr: [Int]) -> [Int] { // O(n^2)
var a = arr
for var i in 1..<a.count {
while i > 0 && a[i] < a[i - 1]{
a.swapAt(i-1, i)
i -= 1
}
}
return a
}
'Swift 개발 이야기' 카테고리의 다른 글
예제로 살펴보는 MVVM Design Pattern with RxSwift (0) | 2020.04.07 |
---|---|
iOS13 이상에서 스토리보드 없이 시작하기! (0) | 2020.04.03 |
Swift 로 알아보는 객체지향 프로그래밍 - 2 (0) | 2020.02.19 |
Swift 로 알아보는 객체지향 프로그래밍 - 1 (0) | 2020.02.07 |
API 를 여러개 호출해야할때 모든 API 가 호출되었음을 확인하려면? (0) | 2020.02.03 |