Coding Test
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ: ๋ฒ๋ธ์ ๋ ฌ, ์ ํ์ ๋ ฌ
Lyla.
2023. 11. 19. 22:58
๋ฒ๋ธ์ ๋ ฌ ๐งผ
์๋ก ์ธ์ ํ ๋ ์์๋ฅผ ๊ฒ์ฌํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ
์ธ์ ํ 2๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋น๊ตํ์ฌ ํฌ๊ธฐ๊ฐ ์์๋๋ก ๋์ด ์์ง ์์ผ๋ฉด ์๋ก ๊ตํํ๋ค.
import Foundation
// ์์ ๋ฐฐ์ด
var nums = [2,5,7,8]
var index: Int = 0
func bubbleSort() {
for i in 0..<nums.count {
// i๋ฅผ ๋นผ์ ์๊ฐ ์ปค์ง์๋ก ๋น๊ตํ๋ ์๊ฐ ์ค์ด๋ค๋๋ก ํ๋ค
for j in 0..<(nums.count-1-i) {
// ์์์๋ถํฐ ๋น๊ต
if nums[j] > nums[j+1] {
nums.swapAt(j, j+1)
}
}
}
print("BubbleSort: ", nums)
}
bubbleSort() //BubbleSort: [8, 7, 5, 2]
์๊ฐ๋ณต์ก๋: O(n²)
stable Sort ์ ๋๋ค.
์ ํ ์ ๋ ฌ
'๊ฐ์ฅ ์์ ์์๋ฅผ ์์ผ๋ก ๋ณด๋ด๋' ์๊ณ ๋ฆฌ์ฆ
func selectionSort() {
for i in 0..<list.count-1 {
//์ธ๋ฑ์ค๋ฅผ ์ ์ฅ
var minIdx = i
for j in i+1 ..< list.count {
if list[minIdx] > list[j] {
minIdx = j
}
}
list.swapAt(minIdx, i)
}
print("SelectionSort: ",list)
}
๋ฃ์ ์๋ฆฌ๋ ์ด๋ฏธ ์ ํด์ ธ ์๊ณ , ๊ทธ ์๋ฆฌ์ ์๋ง์ ์์๋ฅผ ์ ํํด์ ๋ฃ์ต๋๋ค.
์๊ฐ๋ณต์ก๋๋ O(n²)
๊ณต๊ฐ๋ณต์ก๋๋ O(n²)
Unstable Sort ์
๋๋ค.
var minIdx = i
์์ ์ธ๋ฑ์ค๊ฐ ๊ณ ์ ๋์ด ์์ ํ์ธ.