快速排序

//MARK: 快速排序
var quikSortArr = [5, 1, 8, 9, 4]
func quikSort(left: Int, right: Int) {
    if left > right {
        return
    }
    var i = left
    var j = right
    let tmp = quikSortArr[left]
    while i != j {
        while quikSortArr[j] >= tmp && i < j {
            j -= 1
        }
        while quikSortArr[i] <= tmp && i < j  {
            i += 1
        }
        if i < j {
            let t = quikSortArr[i]
            quikSortArr[i] = quikSortArr[j]
            quikSortArr[j] = t
        }
    }
    quikSortArr[left] = quikSortArr[i]
    quikSortArr[i] = tmp
    quikSort(left: left, right: i-1)
    quikSort(left: i+1, right: right)
}
quikSort(left: 0, right: quikSortArr.count-1)
print(quikSortArr)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容