golang练习 找到数组中的最大值,把最大值翻转到队尾,再把最大值翻到队头。
package main import ( "fmt" ) // arr 2,5,3,1,4 // arr 2,4,1,3 func revert(arr []int) { for i,j:=0,len(arr)-1; i<j; i,j=i+1,j-1 { arr[i], arr[j]=arr[j], arr[i] // fmt.Print(arr) } } func findMaxPos(arr []int) (pos int) { max:=0 for i:=0; i<len(arr); i++ { if arr[i] > max { max, pos=arr[i], i } } return pos } // test revert func test_revert(){ var arr0 = []int{2,5,3,1,4} var arr1 = []int{2,4,1,3} fmt.Print(arr0) revert(arr0) fmt.Print(arr1) revert(arr1) } func method1(arr []int) { fmt.Print("start arr:") fmt.Print(arr) fmt.Print("/n") for i:=0; i<len(arr); i++ { fmt.Printf("Turn %d:/n", i) fmt.Print(arr[i:]) fmt.Print("/n") pos := findMaxPos(arr[i:]) pos+=i fmt.Printf("max:%d, max pos:%d/n",arr[pos],pos) revert(arr[pos:]) fmt.Print(arr) fmt.Print("/n") revert(arr[i:]) fmt.Print(arr) fmt.Print("/n") } fmt.Print(arr) } func main() { var arr0 = []int{2,5,3,1,4} method1(arr0) }
有疑问加站长微信联系(非本文作者)
本文来自:CSDN博客
感谢作者:mn_th
查看原文:golang study 01 编程之美1.3
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`