[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 문을 사용하여 피벗 이동 조건을 검사하고, 조건을 만족하지 않을 경우 함수를 조기에 종료할 수 있습니다.