Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了golang实现快速排序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

快速排序的原理就不介绍了。在网上看到一个有趣的视频,大家可以看看,非常详细且有趣。
快速排序视频
代码https://play.golang.org/p/Fw5gtzrPj0

package main

import (
    "fmt"
)

func main() {
    var sortArray = []int{3,41,24,76,11,45,3,64,21,69,19,36}
    fmt.Println(sortArray)
    qsort(sortArray,len(sortArray)-1)
    fmt.Println(sortArray)
}

func qsort(array []int,low,high int) {
    if low < high {
        m := partition(array,high)
        // fmt.Println(m)
        qsort(array,m-1)
        qsort(array,m+1,high)
    }
}

func partition(array []int,high int) int {
    key := arraY[low]
    tmpLow := low
    tmpHigh := high
    for {
        //查找小于等于key的元素,该元素的位置一定是tmpLow到high之间,因为arraY[tmpLow]及左边元素小于等于key,不会越界
        for arraY[tmpHigh] > key {
            tmpHigh--
        }
        //找到大于key的元素,该元素的位置一定是low到tmpHigh+1之间。因为arraY[tmpHigh+1]必定大于key
        for arraY[tmpLow] <= key && tmpLow < tmpHigh {
            tmpLow++
        }

        if tmpLow >= tmpHigh {
            break
        }
        // swap(arraY[tmpLow],arraY[tmpHigh])
        arraY[tmpLow],arraY[tmpHigh] = arraY[tmpHigh],arraY[tmpLow]
        fmt.Println(array)
    }
    arraY[tmpLow],arraY[low] = arraY[low],arraY[tmpLow]
    return tmpLow
}

大佬总结

以上是大佬教程为你收集整理的golang实现快速排序全部内容,希望文章能够帮你解决golang实现快速排序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。