美文网首页
Go算法——快速排序

Go算法——快速排序

作者: ProgrammingGuy | 来源:发表于2020-02-13 16:14 被阅读0次
package main

import (
    "fmt"
)

func quickSort(array []int, p, r int) {
    if p < r {
        q := partition(array, p, r)
        quickSort(array, p, q-1)
        quickSort(array, q+1, r)
    }
}

func partition(array []int, p, r int) int {
    x := array[r]
    i := p - 1
    for j := p; j < r; j++ {
        if array[j] <= x {
            i++
            array[i], array[j] = array[j], array[i]
        }
    }
    array[i+1], array[r] = array[r], array[i+1]
    return i + 1
}

func main() {
    arr := []int{13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}
    fmt.Println(arr)
    quickSort(arr, 0, len(arr)-1)
    fmt.Println(arr)
}
image.png

相关文章

网友评论

      本文标题:Go算法——快速排序

      本文链接:https://www.haomeiwen.com/subject/uwhlfhtx.html