[swift] guard 문을 사용하여 퀵소트 알고리즘에서의 피벗 이동 조건을 검사할 수 있나요?
다음은 guard 문을 사용하여 피벗 이동 조건을 검사하는 퀵소트의 예시입니다.
func quickSort(_ array: inout [Int], low: Int, high: Int) {
if low < high {
let pivot = partition(&array, low: low, high: high)
quickSort(&array, low: low, high: pivot - 1)
quickSort(&array, low: pivot + 1, high: high)
}
}
func partition(_ array: inout [Int], low: Int, high: Int) -> Int {
let pivot = array[high]
var i = low
for j in low..<high {
if array[j] < pivot {
array.swapAt(i, j)
i += 1
}
}
array.swapAt(i, high) // Move pivot to its correct position
}
위의 예시에서 partition
함수 내에서 피벗 이동을 검사하기 위한 guard 문을 추가할 수 있습니다. guard 문을 사용하여 피벗 이동 조건을 검사하고, 조건을 만족하지 않을 경우 함수를 조기에 종료할 수 있습니다.