02.4 빠 른 정렬
6005 단어 go 데이터 구조 와 알고리즘
func QuickSort(values []int) {
//
if len(values) <= 1 {
return
}
// mid
mid, i := values[0], 1
//
head, tail := 0, len(values)-1
//
for head < tail {
fmt.Println(values)
// , ,
// ,
if values[i] > mid {
values[i], values[tail] = values[tail], values[i]
tail--
} else {
values[i], values[head] = values[head], values[i]
head++
i++
}
}
// ,
QuickSort(values[:head])
QuickSort(values[head+1:])
}
func main() {
a := []int{2,1,6,0,4,33,3,5,-7}
QuickSort(a)
fmt.Println(a)
}