github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/develop/dev16/main.go (about) 1 package main 2 3 import "fmt" 4 5 /* 6 Реализовать быструю сортировку массива (quicksort) встроенными методами языка. 7 */ 8 func main() { 9 arr := []int{4, 2, 3, 6, 8, 1, 9, 5} 10 result := quickSort(arr) 11 fmt.Println(result) 12 } 13 func quickSort(arr []int) []int { 14 if len(arr) < 2 { 15 return arr 16 } 17 pivot := arr[0] 18 var less, greater []int 19 for _, v := range arr[1:] { 20 if v <= pivot { 21 less = append(less, v) 22 } else { 23 greater = append(greater, v) 24 } 25 26 } 27 result := append(quickSort(less), pivot) 28 result = append(result, quickSort(greater)...) 29 return result 30 }