码迷,mamicode.com
首页 > 编程语言 > 详细

golang 快速排序

时间:2020-03-03 22:21:57      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:itoa   var   info   AMM   UNC   ram   for   str   文件   

golang 快速排序
package main

import (
    "fmt"
    "strconv"
)

func quickSort(arr []int, low, high int) {
    if low < high {
        var pivot = partition(arr, low, high)
        quickSort(arr, low, pivot)
        quickSort(arr, pivot + 1, high)
    }
}
func partition(arr []int,low,high int) int  {
    var pivot = arr[low]
    var i = low
    var j= high
    // 6 5 4 3 2 1
    // 6 1 2 3 4 7
    for i< j{
        for arr[j] >= pivot && j > low {
            j--
        }
        //
        for arr[i]<= pivot && i<high{
            i++
        }
        if i<j {
            arr[i],arr[j]=arr[j],arr[i]
        }
    }
    arr[low],arr[j] = arr[j],pivot
    //
    return j
}

func printArray(arr []int) {
    for i := 0; i < len(arr); i++ {
        fmt.Print(strconv.Itoa(arr[i]) + " ")
    }
    fmt.Println("")
}

func main() {
    var arr = []int { 15, 3, 12, 6, -9, 9, 0,8,8 }
    fmt.Print("Before Sorting: ")
    printArray(arr)
    quickSort(arr, 0, len(arr) - 1)
    fmt.Print("After Sorting: ")
    printArray(arr)
}

参考文件:

最常用的排序-快速排序

Quick Sort Algorithm in Go Programming

golang 快速排序

标签:itoa   var   info   AMM   UNC   ram   for   str   文件   

原文地址:https://blog.51cto.com/9406836/2475185

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!