本文转载请联系广诚公众号。最近打算重新拾起算法,从0开始学acwing,顺便用Go实现一下。今天的目标是学习quicksort,用Go来写。向acwing学习。输入:3132输出:123快速排序思路:1.定义pivot2.根据pivot划分区间3.递归子题pivot可以随机选择,例如:arr[l],arr[r]等。递归的时候有两种选择,一种是取j,需要保证pivot不取arr[r],防止死循环。本文是这样实现的:pivot:=arr[(l+r)>>1]quickSort(arr,l,j)quickSort(arr,j+1,r)另一种是取i,需要保证pivot不取arr[l],防止死循环,不能同时取arr[(l+r)>>1],必须向上取整,例如:arr[(l+r+1)>>1]。本文是这样实现的:pivot:=arr[(l+r+1)>>1]quickSortI(arr,l,i-1)quickSortI(arr,i,r)最后补充几个围棋知识。1、进入go处理输入,使用fmt.Scan,传入地址。这里我实现了一个功能,后面可以直接复用。//DoBlackInput将空白输入处理为数组funcDoBlackInput(nint)[]int{arr:=make([]int,n)fori:=0;i
