Swift Data Structure And Algorithm/Sort Algorithm

์‚ฝ์ž…์ •๋ ฌ(Insertion Sort)

youngjaeLee1026 2022. 4. 18. 10:56

1. ๋ฌธ์ œ

  • ๊ธฐ๋ณธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ์‚ฝ์ž…์ •๋ ฌ์„ ๊ตฌํ˜„

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

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

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

//MARK: - ์‚ฝ์ž…์ •๋ ฌ(Insertion 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 1..<N {
        for j in stride(from: i, to: 0, by: -1) {
            if array[j - 1] > array[j] {
                let temp: Int = array[j - 1]
                array[j - 1] = array[j]
                array[j] = temp
            }
        }
    }
    
    //MARK: - output
    for data in array {
        print(data, terminator: " ")
    }
}
solution()

 

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