quicksort
来源:互联网 发布:java中interrupt用法 编辑:程序博客网 时间:2024/05/19 02:26
package mainimport "fmt"func partition(values []int, left, right int)(index int){ i,j:=left + 1, right temp := values[left] fmt.Println("begin") fmt.Println("left",left) fmt.Println("right",right) fmt.Println("temp: ",temp) for i < j { for values[i]<temp && i < right{ i++ } fmt.Println("i: ",i) for values[j]>=temp && left < j { j-- } fmt.Println("j: ",j) if i<j { values[i],values[j]=values[j],values[i] } fmt.Println(values) } values[j], values[left] = temp, values[j] fmt.Println(values) fmt.Println("end") return j}func QuickSort(values [] int,left, right int){ if left<right{ mid:=partition(values,left,right) QuickSort(values,left,mid-1) QuickSort(values,mid+1,right) }}func main(){ //values:=[]int{6,12,11,18,7,2,8,10,12} values:=[]int{0,0,0} fmt.Println(values) QuickSort(values,0,len(values)-1) fmt.Println(values)}