golang 算法之 pancake

拼搏现实的明天。 2022-06-08 12:25 221阅读 0赞
  1. // Pancake Sort in Golang
  2. package main
  3. import "fmt"
  4. func main() {
  5. list := data{28, 11, 59, -26, 503, 158, 997, 193, -23, 44}
  6. fmt.Println("\n--- Unsorted --- \n\n", list)
  7. list.pancakesort()
  8. fmt.Println("\n--- Sorted ---\n\n", list, "\n")
  9. }
  10. type data []int32
  11. func (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] }
  12. }
  13. // move to final position in two flips
  14. dataList.flip(lx)
  15. dataList.flip(uns)
  16. }
  17. }
  18. 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] }
  19. }

发表评论

表情:
评论列表 (有 0 条评论,221人围观)

还没有评论,来说两句吧...

相关阅读

    相关 golangTopN算法

    相信大家已经了解了TOPN算法的原理了 不多说 直接上代码,其中\[\]leveldb.UserExp 看需求来定义 //h[root] parentNode h