Gyorsrendezés Go-ban

A Programozás Wiki wikiből
func qsort(arr *[]int, bal, jobb int) {
        if bal < jobb {
                vezerelem := feloszt(arr,bal,jobb)
                qsort(arr,bal,vezerelem-1)
                qsort(arr,vezerelem+1,jobb)
        }
}

func feloszt(arr *[]int, bal, jobb int) int {
        x := (*arr)[jobb]
        i := bal - 1
        for j:=bal; j<jobb; j++ {
                if (*arr)[j] <= x {
                        i++
                        (*arr)[i],(*arr)[j] = (*arr)[j],(*arr)[i]
                }
        }
        (*arr)[i+1],(*arr)[jobb] = (*arr)[jobb],(*arr)[i+1]
        return i+1
}