数据结构--快速排序

Yuan_sr

快速排序是效率比较高的一种排序算法,其思想主要是递归

package main

import "fmt"

func QuickSort(left int, right int, arr *[6]int) {
    l := left
    r := right
    pivot := arr[(left + right) / 2]
    for ; l < r; {
        for ; arr[l] < pivot; {
            l++
        }
        for ; arr[r] > pivot; {
            r--
        }
        if l >= r {
            break
        }
        arr[r], arr[l] = arr[l], arr[r]
        if arr[l] == pivot {
            r--
        }
        if arr[r] == pivot {
            l++
        }
    }
    if l==r {
        l++
        r--
    }
    if left < r {
        QuickSort(left, r, arr)
    }
    if right > l {
        QuickSort(l, right, arr)
    }
}

func main(){
    arr := [6]int{-9, 78, 0, 23, -57, 70}
    fmt.Println(arr)
    QuickSort(0, len(arr) - 1, &arr)
    fmt.Println(arr)

}

输出:

[-9 78 0 23 -57 70]
[-57 -9 0 23 70 78]
阅读 207
7 声望
4 粉丝
0 条评论
你知道吗?

7 声望
4 粉丝
宣传栏