์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค!
์ค๋์ ํ๊ต ์๊ณ ๋ฆฌ์ฆ ์์ ์ ๋ฃ๋ ์ค์ ์ฝ์ ์ ๋ ฌ์ ๊ตฌํํด๋ณด๋ ๊ณผ์ ๊ฐ ์์๋๋ฐ...
๋ฑ ์ด ๋ฐฉ์์ด ์ด๋ค ๊ฒ์ด๊ณ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ๋ค! ๋ผ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ๋ ์ค๋ฅด์ง๊ฐ ์๋๋ผ๊ตฌ์...
๊ทธ๋์ ์ฝ์ ์ ๋ ฌ์ด ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ๋์ง์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
๋ฐ๋ก ์์ํ ๊ฒ์~
์ฝ์ ์ ๋ ฌ์ด๋?
์ฝ์ ์ ๋ ฌ์ ์๋ฃ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ, ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํจ์ผ๋ก์จ ์ ๋ ฌ์ ์์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. -์ํค ๋ฐฑ๊ณผ -
์ ๋ ฌํ๋ ๊ณผ์ ์ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์ฝ์ ์ ๋ ฌ ๊ณผ์
82,10,9,72,31,45,60๋ฅผ ์ฝ์ ์ ๋ ฌ์ ํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
1. ๋จผ์ ๋งจ ์ฒซ ๋ฒ์งธ์ธ 82์ ๊ทธ ๋ค์ ์ซ์์ธ 10์ ๋น๊ตํด์ค๋๋ค.
10์ด ๋ ์์ผ๋ฏ๋ก 82 ์์ผ๋ก ๋ณด๋ ๋๋ค. <- 10 82
2. 10 ๋ค์ ์ซ์์ธ 9์ 10 82๋ฅผ ๋น๊ตํด์ค๋๋ค.
9๋ 10,82๋ณด๋ค ์์ผ๋ฏ๋ก ๊ฐ์ฅ ์์ผ๋ก ๋ณด๋ ๋๋ค <- 9 10 82
3. ๊ทธ ๋ค์ ์ซ์์ธ 72์ ์ด์ ์ซ์๋ค์ ๋น๊ตํด์ค๋๋ค.
72๋ 82๋ณด๋ค ์๊ณ 10๋ณด๋ค ํฌ๋ฏ๋ก 10 ๋ฐ๋ก ๋ค๋ก ๋ณด๋ด์ค๋๋ค. <- 9 10 72 82
4. 31๊ณผ ์ด์ ์ซ์๋ค์ ๋น๊ตํฉ๋๋ค.
31์ 72๋ณด๋ค ์๊ณ 10๋ณด๋ค ํฌ๋ฏ๋ก 10 ๋ฐ๋ก ๋ค๋ก ๋ณด๋ด์ค๋๋ค. <- 9 10 31 72 82
5. 45์ ์ด์ ์ซ์๋ค์ ๋น๊ตํฉ๋๋ค.
45๋ 31๋ณด๋ค ํฌ๊ณ 72๋ณด๋ค ์์ผ๋ฏ๋ก 31 ๋ค๋ก ๋ณด๋ด์ค๋๋ค. <- 9 10 31 45 72 82
6. ๋ง์ง๋ง์ผ๋ก 60๊ณผ ์ด์ ์ซ์๋ค์ ๋น๊ตํฉ๋๋ค.
60์ 45๋ณด๋ค ํฌ๊ณ 72๋ณด๋ค ์์ผ๋ฏ๋ก 45 ๋ค๋ก ๋ณด๋ด์ค๋๋ค. <- 9 10 31 45 60 72 82
์๊ฐ๋ณต์ก๋
๋ง์ฝ n๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด, ์ต์ ์ ๊ฒฝ์ฐ ์ฒ์๋ถํฐ ๋๊น์ง 1 + 2 + 3 + 4 ... n-1๊น์ง ๋น๊ต๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์
์๊ฐ ๋ณต์ก๋๋ O(n²)์ ๋๋ค.
์ฝ๋ ๊ตฌํ
import Foundation
var numbers = [82,10,9,72,31,45,60]
numbers.sortByInsertion(nil)
extension Array where Element == Int {
mutating func sortByInsertion(_ startIndex:Int?) -> [Int] {
let start = startIndex == nil ? 1 : startIndex!
if start == self.count { return self }
let current = self.remove(at: start)
var index = 0
for i in stride(from: start-1, through: 0, by:-1) {
if current >= self[i] {
index = i+1
break
}
}
self.insert(current, at:index)
return sortByInsertion(start+1)
}
}
'๐ฅ Computer Science > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํฉ๋ณ ์ ๋ ฌ(Merge Sort)๋? (feat. Swift) (0) | 2021.10.14 |
---|---|
[Algorithm] ์๊ฐ๋ณต์ก๋(Time-Complexity)๋? (feat. Big O) (0) | 2021.09.29 |
[Algorithm] ๋ฐฑํธ๋ํน(Backtracking)์ด๋? (feat. ์์ ํฌํจ) (0) | 2021.08.28 |
[Algorithm] ์กฐํฉ(Combination)์ด๋? (feat.Swift) (0) | 2021.06.27 |
[Algorithm] ์์ด(Permutation)์ด๋? (feat.Swift) (0) | 2021.06.27 |
๋๊ธ