使用Go语言实现的快速排序
package main
import "fmt"
func main() {
arr := []int{3, 5, 2, 5, 7, 1, 3, 5, 25, 2, 15}
fmt.Println("before arr : ", arr)
quickSort(arr, 0, len(arr)-1)
fmt.Println("after arr : ", arr)
}
func quickSort(arr []int, left int, right int) {
if left >= right {
return
}
i, j := left, right
pivot := arr[left]
for i < j {
for i < j && arr[j] > pivot {
j--
}
if i < j {
arr[i] = arr[j]
i++
}
for i < j && arr[i] < pivot {
i++
}
if i < j {
arr[j] = arr[i]
j--
}
}
arr[i] = pivot
quickSort(arr, left, i-1)
quickSort(arr, i+1, right)
}