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)}


原创粉丝点击