美文网首页
go语言实现快速排序

go语言实现快速排序

作者: 胤熙 | 来源:发表于2020-07-08 23:30 被阅读0次
package main

import "fmt"

func main()  {
    fmt.Println("快速排序")
    testArr := []int{23,12,34,6,8,342,234,8677,33,22,88}
    fmt.Println("排序前",testArr)
    quickSort(testArr,0,len(testArr) - 1)
    fmt.Println("排序后",testArr)
}

//快速排序
func quickSort(needSortArr []int,leftIndex int,rightIndex int){
    if leftIndex >= rightIndex {
        return
    }
    cutIndex := leftIndex
    for i := leftIndex + 1; i <= rightIndex; i++ {
        if needSortArr[leftIndex] >= needSortArr[i] {
            cutIndex++
            needSortArr[i], needSortArr[cutIndex] = needSortArr[cutIndex], needSortArr[i]
        }
    }
    needSortArr[leftIndex], needSortArr[cutIndex] = needSortArr[cutIndex], needSortArr[leftIndex]
    var wg sync.WaitGroup
    wg.Add(2)
    go func() {
        quickSort(needSortArr, leftIndex, cutIndex - 1)
        wg.Done()
    }()
    go func() {
        quickSort(needSortArr, cutIndex + 1, rightIndex)
        wg.Done()
    }()
    wg.Wait()
}

相关文章

  • go语言实现快速排序

  • 数据结构02-高效排序算法

    第二章 高效排序算法 第二章 高效排序算法一、快速排序基本思想快速排序图示一次划分C 语言实现Java 语言实现算...

  • go实现快速排序

    第一,单线程实现快速排序 第二,多线程实现快速排序

  • 排序算法

    快速排序:顾名思义就是快,c语言底层实现的排序算法主要就是用的快速排序。快速排序,最好时间复杂度是nlogn,最坏...

  • 选择排序、冒泡排序、插入排序、快速排序

    在工作中,常用的“选择排序”、“冒泡排序”、“插入排序”、“快速排序”这四种排序方式。我试着用go语言编写一下这四...

  • GO语言实现 一 快速排序(一)

    快速排序被誉为20世纪科学和工程领域的十大算法之一。听名字就能了解,快速排序的特点,就是快 快速排序 快速排序采用...

  • GO语言实现 一 快速排序(二)

    接下来,我们会讨论快速排序的更多细节 标志位的选取 在上篇博文中,我们讲到了标志位的选取一般是取数组第一个元素,但...

  • 排序算法Java实现

    本文会通过Java语言实现:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序...

  • Golang快速排序(分治-填充)

    go快速排序算法,Go没有while循环,使用for 测试

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

网友评论

      本文标题:go语言实现快速排序

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