golang 算法之 pancake

来源:互联网 发布:短信轰炸软件免费版 编辑:程序博客网 时间:2024/06/06 17:11
// Pancake Sort in Golangpackage mainimport "fmt"func main() {    list := data{28, 11, 59, -26, 503, 158, 997, 193, -23, 44}    fmt.Println("\n--- Unsorted --- \n\n", list)    list.pancakesort()    fmt.Println("\n--- Sorted ---\n\n", list, "\n")}type data []int32func (dataList data) pancakesort() {    for uns := len(dataList) - 1; uns > 0; uns-- {        // find largest in unsorted range        lx, lg := 0, dataList[0]        for i := 1; i <= uns; i++ {            if dataList[i] > lg {                lx, lg = i, dataList[i]            }        }        // move to final position in two flips        dataList.flip(lx)        dataList.flip(uns)    }}func (dataList data) flip(r int) {    for l := 0; l < r; l, r = l+1, r-1 {        dataList[l], dataList[r] = dataList[r], dataList[l]    }}
原创粉丝点击