Swift Data Structure And Algorithm/Sort Algorithm

์„ ํƒ์ •๋ ฌ(Selection Sort)

youngjaeLee1026 2022. 4. 18. 10:54

1. ๋ฌธ์ œ

  • ๊ธฐ๋ณธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ์„ ํƒ์ •๋ ฌ์„ ๊ตฌํ˜„

2. ๋ฌธ์ œ ์„ค๊ณ„

  • ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์•„ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌํ•ด ๋‚˜๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • O(N^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง

3. ์ „์ฒด ์ฝ”๋“œ

//MARK: - ์„ ํƒ์ •๋ ฌ(Selection Sort)

//MARK: - Framework
import Foundation

//MARK: - Function
func solution() -> Void {
    //MARK: - input
    guard let N: Int = Int(readLine() ?? "0") else { return }
    guard let input = readLine()?.components(separatedBy: " ") else { return }
    var array: Array<Int> = input.map { Int($0) ?? 0 }
    
    //MARK: - process
    for i in 0..<N {
        var index: Int = i
        for j in (i + 1)..<N {
            if array[j] < array[i] {
                index = j
            }
        }
        
        let temp: Int = array[index]
        array[index] = array[i]
        array[i] = temp
    }
    
    //MARK: - output
    for data in array {
        print("\(data) ", terminator: "")
    }
}
solution()

 

์ „์ฒด์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.