Swift Data Structure And Algorithm/Sort Algorithm
버블정렬(Bubble Sort)
youngjaeLee1026
2022. 4. 18. 11:00
1. 문제
- 기본 정렬 알고리즘인 버블정렬을 구현
2. 문제 설계
- 버블정렬은 인접한 두 원소를 비교해가면서 정렬을 하는 알고리즘, 선택정렬 및 삽입정렬과 다르게 오른쪽 부터 정렬이 되는 형태를 가짐
- O(N^2)의 시간복잡도를 가짐
3. 전체 코드
//MARK: - 버블정렬(Bubble 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 stride(from: N - 1, to: 0, by: -1) {
for j in 0..<i {
if array[j] > array[j + 1] {
let temp: Int = array[j]
array[j] = array[j + 1]
array[j + 1] = temp
}
}
}
//MARK: - output
for data in array {
print(data, terminator: " ")
}
}
solution()
전체코드는 여기에서 확인할 수 있습니다.