package quicksort
func QuickSort(source []int) []int {
if len(source) < 2 {
return source
}
pivot := source[0]
var left, right []int
for _, value := range source[1:] {
if value < pivot {
left = append(left, value)
} else {
right = append(right, value)
}
}
mid := append([]int{pivot}, QuickSort(right)...)
return append(QuickSort(left), mid...)
}
package main
import (
"fmt"
s "quicksort"
)
func main() {
arr := []int{34, 23, 6, 45, 67, 23, 124, 56, 9, 76, 23, 43, 9, 136, 765, 23, 4, 1, 98}
fmt.Println(arr)
sortArr := s.QuickSort(arr)
fmt.Println(sortArr)
}