今日完成
- package main
-
- import "fmt"
-
- func main() {
- nums := []int{1,3,5,7,9,0,2,4,8,10}
- println(len(nums))
- Qsort(nums,0,len(nums)-1)
- for i := range nums{
- fmt.Println(i)
- }
- }
- func Qsort(nums []int,left int,right int){
- if(left >= right){
- return
- }
- mid := partition(nums,left,right)
- Qsort(nums,left,mid-1)
- Qsort(nums,mid+1,right)
- }
- // 切片进行传递
- func partition(nums []int,left int,right int)(int) {
- flag := left
- index := left + 1
- for i := index ; i <= right ;i++{
- if(nums[i] < nums[flag]){
- swap(nums,index,i)
- index++;
- }
- }
- swap(nums,index-1,left)
- return index -1
- }
- func swap(nums []int,i int,j int) {
- tep := nums[i]
- nums[i] = nums[j]
- nums[j] = tep
- }