-
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ: ๋ฒ๋ธ์ ๋ ฌ, ์ ํ์ ๋ ฌCoding Test 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
์์ ์ธ๋ฑ์ค๊ฐ ๊ณ ์ ๋์ด ์์ ํ์ธ.
'Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ์๊ณ ๋ฆฌ์ฆ (1) 2023.12.03 [Swift] ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ (0) 2023.11.28 [Swift] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) 2023.11.15 [Swift] ์์ ํ๋ณ (1) 2023.11.14 [Swift] ๋ด์ (0) 2023.11.12